Docker Kubernetes 容器重启策略

Docker Kubernetes 容器重启策略

当容器被创建时,容器会根据重启策略来进行容器重启。

支持三种策略:

  • Always:当容器终止退出后,总是重启容器,默认策略。
  • OnFailure:当容器异常退出(退出状态码非0)时,才重启容器。
  • Never:当容器终止退出,从不重启容器。

环境:

  • 系统:Centos 7.4 x64
  • Docker版本:18.09.0
  • Kubernetes版本:v1.8
  • 管理节点:192.168.1.79
  • 工作节点:192.168.1.78
  • 工作节点:192.168.1.77

案例一

1、管理节点:创建Pod时添加重启策略

vim pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-test
  labels:
    test: centos
spec:
  containers:
  - name: hello
    image: centos:6
    command: ["bash","-c","while true;do date;sleep 1;done"]
  restartPolicy: OnFilure
# api版本
apiVersion: v1
# 指定创建资源对象
kind: Pod
# 源数据、可以写name,命名空间,对象标签
metadata:
# 服务名称
  name: pod-test
# 标签
  labels:
# 标签名
    os: centos
# 容器资源信息
spec:
# 容器管理
  containers:
# 容器名称
  - name: hello
# 容器镜像
    image: centos:6
# 添加环境变量
    env:
# 创建key
    - name: Test
# 创建value
      value: "123456"
# 启动容器后执行命令
    command: ["bash","-c","while true;do date;sleep 1;done"]
# 重启策略 可添加(Always,OnFailure,Never)
  restartPolicy: OnFilure
命令注解

2、管理节点:创建Pod

kubectl create -f pod.yaml
命令:kubectl describe pods pod-test 

# 重启统计
Restart Count:  0
查看pod状态

注:OnFailure状态可在相关节点kill掉容器服务测试重启。


案例二 

# 查看默认重启策略
kubectl edit deployment nginx
restartPolicy: Always

 

# 语法格式

apiVersion: v1
kind: Pod
metadata:
  name: foo
  namespace: awesomeapps
spec:
  containers:
    - name: foo
      image: janedoe/awesomeapp:v1
  restartPolicy: Always

 

1、创建测试yaml;每个10秒发出异常退出重启容器

apiVersion: v1
kind: Pod
metadata:
  name: foo
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 10
vim restart.yaml

2、执行文件

kubectl create -f restart.yaml

3、设置重启策略,当容器异常退出时直接销毁,不重启

apiVersion: v1
kind: Pod
metadata:
  name: foo
spec:
  containers:
  - name: busybox
    image: busybox
    args:
    - /bin/sh
    - -c
    - sleep 10
  restartPolicy: Never
vim restart.yaml

4、执行文件

kubectl create -f restart.yaml

5、测试

10秒后查看

 

posted @ 2018-11-24 14:19  kevin.Xiang  阅读(11174)  评论(0编辑  收藏  举报