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秒后查看

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM