【学习笔记】deployment加备注

#定义ingress
apiVersion: extensions/v1beta1	#版本号,1.6版本时放在这个版本中,最后到app/v1中统一管理
kind: Ingress	#构建ingress
metadata:	#元数据
  name: APPNAME-ing 	#对应ci脚本的项目名,流水线中被CONTAINER_NAME替换APPNAME
  namespace:  prod	#项目所在的命名空间
  labels:	#打个标签
    ing: APPNAME-ing
  annotations:	#注释
    kubernetes.io/ingress.class: "nginx"	#说明接下来用到的ingress controller是nginx,转换成controller对应的语句和规则。kubernetes.io前缀,ingress.class键名,对应值nginx。
spec:	#ingress的详细定义
  rules:	#定义转发规则
  - host: DOMAIN.allhome.com.cn	#项目的虚拟主机名,DOMAIN会被CI流水线替换为项目域名
    http:	#指向后端的http选择器列表
      paths:	#将请求映射到后端的路径集合,下面可以用- path定义路径,不定义则默认根目录
      - backend:	#定义后端项目的具体信息
          serviceName: APPNAME-svc  #因为我们的service没有ClusterIP,而是直接调用servicename
          servicePort: CONPORT	#service暴露的端口
  tls:	#证书信息
  - secretName: allhome-tls	#证书信息的文件名
#定义service
---
apiVersion: v1	#固定写法
kind: Service	#定义一个service
metadata:	#元数据
  name: APPNAME-svc	#service名,同样,APPNAME会被CI流水线替换为项目的pod名称。
  namespace: prod	#所在命名空间
  labels:	#打个标签
    svc: APPNAME-svc
spec:	#service详细定义
  clusterIP: None	#因为ingress用过serviceName寻找对应的service,没设置clusterIP,
  ports:	#此服务公开的端口列表
  - name: http #起个名字,没啥用
    port: CONPORT	#service对外提供服务的端口;
    protocol: TCP	#用什么协议,TCP/UDP ,默认TCP
  selector:		#标签选择器,对应下面的 matchLabels,让pod和service发生关系
    app: APPNAME
  type: ClusterIP #service类型为ClusterIP,集群内部通信的虚拟IP(另外两个NodePort和LoadBalancer)
#定义deployment
---
apiVersion: extensions/v1beta1	#版本号
kind: Deployment	#创建一个Deployment控制器
metadata:	#元数据
  name: APPNAME	#项目名,会被CI流水线的CONTAINER_NAME替换
  namespace: prod	#所在命名空间
  labels:	#给Deployment打个标签
    deploy: APPNAME
spec:	#deployment控制器的详细定义
  replicas: 1	#pod数量,1个
  strategy:	#项目更新策略
    type: RollingUpdate	#滚动升级
    rollingUpdate:	
      maxSurge: 1	#滚动升级时启动的新pod数量为1
      maxUnavailable: 0	#杀死的旧pod数量为0
  selector:	#标签选择器,用来和containers、services等发生关系
    matchLabels:
      app: APPNAME
  template:	#模板,描述将要创建的pod
    metadata:	#pod元数据
      name: APPNAME	#pod名,同样会被替换为CI的
      namespace: prod	#所在命名空间
      labels:	#标签选择器,对应上面的matchLabels
        app: APPNAME
    spec:	#pod的详细定义
      imagePullSecrets: 	#pull镜像时使用的secret名称,以key:secretkey格式指定
      - name: regsecret
      containers:	#pod中容器列表
      - name: APPNAME	#容器名称
        image: registry-vpc.cn-beijing.aliyuncs.com/NAMESPACE/APPNAME:TAG	#容器镜像的名称
        imagePullPolicy: Always	#获取镜像的策略,Alawys表示下载镜像 IfnotPresent表示优先使用本地镜像,否则下载镜像,Nerver表示仅使用本地镜像
        env:	#容器运行前需要设置的环境变量列表。
        - name: SPRING_PROFILES_ACTIVE	#项目中规定使用哪种环境
          value: prod	#prod分支
        - name: eureka.client.service-url.defaultZone	#配置中心里关于eureka的配置
          valueFrom:
            configMapKeyRef:	#configmap资源,在-prod命名空间的kubectl get cm查询相关信息
              name: eureka-cm	#configmap资源名为eureka-cm
              key: eureka_service_address	#键名为eureka_service_address,对应的value在cm资源配置中,设置了eureka的地址
        - name: AGENT_SERVICE_NAME		#容器名,在部署脚本中有对应的变量
          value: APPNAME	#会被流水线替换为对应的容器名
        - name: COLLECTOR_BACKEND_SERVICE	#给变量起个名
          valueFrom:	
            configMapKeyRef:	#configmap资源
              name: sky-cm	#configmap资源名为 sky-cm
              key: sky_service_address	#键名为sky_service_address,对应的链路追踪服务
        ports:		#需要暴露的端口号列表
        - name: http	#端口号名称
          containerPort: CONPORT	#容器需要监听的端口号
        - name: rpc	
          containerPort: RPCPORT
        readinessProbe:		#就绪探针,来探测容器是否已经就绪可以接受流量  
          successThreshold: 1	#探测失败后,最少连续探测成功多少次才被认定为成功,默认是1,对于liveness必须是1,最小值是1。
          failureThreshold: 3	#探测成功后,最少连续探测失败多少次才被认定为失败。默认是3。最小值是1.
          httpGet:	#基于HTTP的探针,向目标容器发送一个HTTP请求,根据其响应码进行结果判定
            port: http	#要在容器上访问的端口名称
            path: /actuator	#请求的HTTP资源路径
            scheme: HTTP	#建立连接使用的协议
          initialDelaySeconds: 30	#启动后延时30秒开始探测
          periodSeconds: 10	#10秒探测一次
          timeoutSeconds: 5	#超时5秒则认为探测失败
        livenessProbe:  	#存活探针,用于判断容器是否存活。
          failureThreshold: 3	#探测成功后,最少连续探测失败多少次才被为失败,默认3,最小是1
          successThreshold: 1	#探测失败后,最少连续探测成功多少次才被认定为成功,默认是1,对于liveness必须是1,最小值是1。
          httpGet:	##基于HTTP的探针,向目标容器发送一个HTTP请求,根据其响应码进行结果判定
            port: http	#要在容器上访问的端口名称
            path: /actuator	#请求的HTTP资源路径
            scheme: HTTP	#建立连接使用的协议
          initialDelaySeconds: 30   #容器启动后延时30秒开始探测
          periodSeconds: 10	#每10秒探测一次
          timeoutSeconds: 5 	#超时5秒则认为探测失败
        resources:		#资源限制和请求设置
          requests:	#资源请求设置
            cpu: "100m"	#CPU请求,100m表示0.1核
            memory: "512Mi"	#内存请求,512M,
          limits: 	#资源限制的设置
            cpu: "2000m" 	#CPU限制2核
            memory: "4096Mi"	#内存限制2G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值