11

Liveness(活跃度)
用户可以自定义判断容器是否健康的条件。如果探测失败,Pod就会重启。
通过判断某个文件是否存在
[root@master ~]# cat test.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test
  labels:
    test: test
spec:
  replicas: 2
  template:
    metadata:
      name: test
      labels:
        test: test
    spec:
      containers:
      - name: test
        image: busybox
        args:
        - /bin/sh
        - -c
        - touch /test; sleep 30; rm -rf /test; sleep 300
        livenessProbe:
          exec:
            command:
              - cat
              - /test
          initialDelaySeconds: 10
          periodSeconds: 5

Readiness(敏捷探测)
[root@master ~]# vim test.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test
  labels:
    test: test
spec:
  replicas: 2
  template:
    metadata:
      name: test
      labels:
        test: test
    spec:
      containers:
      - name: test
        image: nginx
        ports:
        - protocol: TCP
          containerPort: 80
        readinessProbe:
          exec:
            command:
              - cat
              - /test
          initialDelaySeconds: 10
          periodSeconds: 5

这种探测方法是运行命令cat /test查看文件是否存在

[root@master ~]# cat test.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test
  labels:
    test: test
spec:
  replicas: 2
  template:
    metadata:
      name: test
      labels:
        test: test
    spec:
      containers:
      - name: test
        image: nginx
        ports:
        - protocol: TCP
          containerPort: 80
        readinessProbe:
          httpGet:
            scheme: HTTP
            path: /test
            port: 80
          initialDelaySeconds: 10
          periodSeconds: 5

这种方法是运行命令curl -I 10.244.1.27:80/test,访问的是/usr/share/nginx/html/test,根据返回的状态码进行判断,200-400之间为正常。

两种探测机制,写法上几乎一样,不同的是,探测失败之后的策略。
Liveness:如果探测失败,会重启Pod。
Readiness:如果失败,会将Pod设置为不可用状态,并且,不接受Service资源的转发请求。
运用在服务的扩容之上。

kubectl explain deployment.spec.strategy.rollingUpdate
maxSurge:更新过程中,可以同时拥有Pod的最大值。
maxUnavailable:在更新过程中,不可用的副本数占期望副本数的值

[root@master ~]# cat test-1.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test
  labels:
    test: test
spec:
  replicas: 10
  template:
    metadata:
      name: test
      labels:
        test: test
    spec:
      containers:
      - name: test
        image: nginx
        ports:
        - protocol: TCP
          containerPort: 80
        args:
        - /bin/sh
        - -c
        - touch /test; sleep 10000
        readinessProbe:
          exec:
            command: ['cat','/test']
          initialDelaySeconds: 10
          periodSeconds: 5

[root@master ~]# cat test-2.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test
  labels:
    test: test
spec:
  strategy:
    rollingUpdate:
      maxSurge: 2
      maxUnavailable: 2
  replicas: 10
  template:
    metadata:
      name: test
      labels:
        test: test
    spec:
      containers:
      - name: test
        image: nginx
        ports:
        - protocol: TCP
          containerPort: 80
        args:
        - /bin/sh
        - -c
        - sleep 10000
        readinessProbe:
          exec:
            command: ['cat','/test']
          initialDelaySeconds: 10
          periodSeconds: 5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值