k8s部署文件 以及 service暴露文件
在项目deploy下创建prod/prod.yaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
| #资源类型 kind: Deployment apiVersion: apps/v1 metadata: #与微服务一样 name: gulimall-order #k8s的项目名 namespace: gulimall labels: #与微服务一样 app: gulimall-order #规格 spec: #副本数量 replicas: 1 #选择器 selector: #匹配labels 与上面labels名字相同 matchLabels: app: gulimall-order #模板 template: metadata: labels: #匹配labels 与上面labels名字相同 app: gulimall-order #规格 spec: containers: #容器名 - name: gulimall-order #镜像地址 动态取值 image: $REGISTRY/$DOCKERHUB_NAMESPACE/$PROJECT_NAME:latest ports: #容器端口 - containerPort: 8080 protocol: TCP #资源 resources: #限制 limits: cpu: 1000m memory: 500Mi #初始申请 requests: cpu: 10m memory: 10Mi #日志存放位置 terminationMessagePath: /dev/termination-log terminationMessagePolicy: File #镜像不存在再拉取 imagePullPolicy: IfNotPresent #自动重启 restartPolicy: Always #停机秒数 terminationGracePeriodSeconds: 30 #策略 strategy: #滚动更新策略 停一个起一个 type: RollingUpdate rollingUpdate: #最大不可用 maxUnavailable: 25% #最大存活 maxSurge: 25% #历史版本数量 revisionHistoryLimit: 10 #处理时间 progressDeadlineSeconds: 600
--- #无状态服务 kind: Service apiVersion: v1 #与上相同 metadata: name: gulimall-order namespace: gulimall labels: app: gulimall-order #规格 spec: ports: - name: http protocol: TCP port: 8080 #暴露端口 targetPort: 8080 #启动端口 nodePort: 31005 #代理端口 selector: app: gulimall-order type: NodePort #以nodeport方式暴露 sessionAffinity: None #无需会话
|
port,targetport,nodeport
除了nodeport 不能一样 其他可以一样 因为我们每个pod是隔离的每个service也是隔离的
作者声明