k8s 基于docker镜像运行服务

  • 创建ConfigMap

apiVersion: v1 #指定版本
kind: ConfigMap #指定资源种类
metadata:
  name: course-conf #名称
  namespace: online #属于命名空间
data:
  ADDR: <your >
  DATABASE: <database name>
  PASSWORD: <password>
  USERNAME: <username>
#配置需要的环境变量
#修改configmap 不会更新引用
#修改注解强制触发滚动更新
$ kubectl patch deployment <deployment.name> -n <namespace.name> --patch '{"spec": {"template":{"metadata": {"annotations": {"version/config": "20211111" }}}}}'
  • 创建Deployment

apiVersion: v1 #指定api版本,此值必须在kubectl apiversion中
kind: Namespace #指定创建资源的种类- 命名空间
metadata: #资源的元数据
  name: online #名字 添加一个名为online 的命名空间
---
apiVersion: apps/v1
kind: Deployment #创建Deployment
metadata:
  name: course # 资源名称,同一个namespace中唯一
  namespace: online #资源属于哪个命名空间
  labels: #设定资源标签
    app: course
spec: #指定资源内容
  replicas: 2 #你可以通过设置 .spec.replicas 来指定要同时运行的 Pod 个数,如果你没有指定 .spec.replicas, 那么默认值为 1
  selector:
    matchLabels:
      app: course
      version: v1
#selector 字段定义 Deployment 如何查找要管理的 Pods. 在这里,你选择在 Pod 模板中定义的标签(app: course)。不过,更复杂的选择规则是也可能的,只要 Pod 模板本身满足所给规则即可
  template:
    metadata:
      labels:
        app: course
        version: v1
    spec:
      containers:
        - name: course
          image: <private.registry>
          envFrom: #环境变量来源预先设定的configMap.name
            - configMapRef:
                name: course-conf
          resources: #资源管理
            limits: #资源限制
              cpu: 200m #CPU资源(核数),两种方式,浮点数或者是整数+m,0.1=100m,最少值为0.001核(1m) 
              memory: 300Mi ##内存使用量  
            requests: #容器运行时,最低资源需求,也就是说最少需要多少资源容器才能正常运行
              cpu: 50m
              memory: 70Mi
          imagePullPolicy: IfNotPresent
      restartPolicy: Always 
#三个选择Always、Never、IfNotPresent,每次启动时检查和更新(从registery)images的策略
#Always,每次都检查 
#Never,每次都不检查(不管本地是否有) 
#IfNotPresent,如果本地有就不检查,如果没有就拉取
#使用本地镜像需要满足两个条件:
#1 - imagePullPolicy设置为IfNotPresent(如果本地没有,才从远程仓库拉取) 或者 Never(只从本地拉取)
#2 - 从节点上要有这个镜像。准确的说是调度到哪个节点,那个节点上就要有这个镜像,否则会报错ErrImageNeverPull
      imagePullSecrets: #定义pull镜像时使用secret名称 
      - name: regcred 
#template 字段包含以下子字段:
#Pod 被使用 `labels` 字段打上 `app: course` 标签。
#Pod模板规约(即 .template.spec字段)指示Pods运行一个容器镜像
# 建一个容器并使用 `name` 字段将其命名为 `course`。
$ kubectl apply -f <deployment.yaml>

授权docker secret

  • 暴露服务

apiVersion: v1
kind: Service
metadata:
  name: course
spec:
  selector:
    app: course
  type: LoadBalancer
  ports:
  - name: grpc
    protocol: TCP
    port: 8000
    targetPort: 50006
#apiVersion: 指定版本 
#kind: 类型 
#name: 指定服务名称 
#labels: 标签 
#port: Service 服务暴露的端口 
#targetPort: 容器暴露的端口 
#seletor: 关联的Pod的标签
#type:LoadBalanncer 外部负载均衡器
$ kubectl apply -f <service.yaml>
$ kubectl get svc -A
NAME     TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
course   LoadBalancer   10.10.10.187   10.22.2.201   8000:32125/TCP   16h
#如果是http服务则直接访问 http://EXTERNAL-IP:8000即可
#本服务是设定grpc服务,grpc client 中访问EXTERNAL-IP:8000

创建服务时,你可以选择自动创建云网络负载均衡器。这提供了一个外部可访问的 IP 地址, 可将流量分配 到集群节点上的正确端口上 ( 假设集群在支持的环境中运行,并配置了正确的云负载平衡器提供商包)。
如果不是云平台提供的服务则不可用 LoadBalanncer。可下载MetalLB提供外部可访问IP

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容