您好,登錄后才能下訂單哦!
Pod是Kubernetes調度的最小單元。一個Pod可以包含一個或多個容器,因此它可以被看作是內部容器的邏輯宿主機。
pod和container的資源請求和限制
#cpu上限
spec.containers[].resources.limits.cpu
#內存上限
spec.containers[].resources.limits.memory
#創建時分配的基本cpu資源
spec.containers[].resources.requests.cpu
#創建時分配的基本內存資源
spec.containers[].resources.requests.memory
vim pod2.yaml
apiVersion: v1
kind: Pod
metadata:
name: frontend
#Pod資源的名稱
spec:
containers:
- name: db
#容器1的名稱
image: mysql
env:
- name: MYSQL_ROOT_PASSWORD
value: "password"
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
- name: wp
#容器2的名稱
image: wordpress
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
kubectl apply -f pod2.yaml
kubectl describe pod frontend
kubectl describe nodes 192.168.142.130
kubectl get ns
1:Always:當容器終止推出后,總是重啟容器,默認策略
2:Onfailure:當容器異常退出(退出碼為非0)時,重啟容器
3:Never:當容器終止退出,從不重啟資源
注意:k8s中不支持重啟pod資源,只有刪除重建
kubectl edit deploy
#輸入/restartPolicy查找
restartPolicy: Always
#沒有設定重啟策略時默認為Always
#創建pod3.yaml文件
vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:
name: foo
spec:
containers:
- name: busybox
image: busybox
args:
#參數
- /bin/sh
#在shell環境中
- -c
#command命令
- sleep 30; exit 3
#容器啟動后休眠30s,異常退出返回狀態碼為非0值
#創建資源
kubectl apply -f pod3.yaml
kubectl get pods
#此時會出現Error報錯,因剛剛設置的異常退出,一會再查看時RESTARTS重啟值會變為1、
#修改pod3.yaml文件
vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:
name: foo
spec:
containers:
- name: busybox
image: busybox
args:
- /bin/sh
- -c
- sleep 10
#修改休眠時間為10s
restartPolicy: Never
#添加重啟策略
#創建資源
kubectl apply -f pod3.yaml
livenessProbe 如果檢查失敗,將殺死容器,根據Pod的restartPolicy來操作
ReadinessProbe 如果檢查失敗,kubernetes會把Pod從service endpoints后端節點中中剔除
httpGet 發送http請求,返回200-400范圍狀態碼為成功
exec 執行Shell命令返回狀態碼是0為成功
tcpSocket 發起TCP Socket建立成功
#創建pod4.yaml文件
vim pod4.yaml
apiVersion: v1
kind: Pod
metadata:
labels:
test: liveness
name: liveness-exec
spec:
containers:
- name: liveness
image: busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy
#創建一個空文件,休眠30s,刪除這個空文件
livenessProbe:
exec:
#探測健康
command:
#command命令
- cat
#執行查看命令
- /tmp/healthy
#創建的空文件
initialDelaySeconds: 5
#容器創建完成5秒之后開始健康檢查
periodSeconds: 5
#檢查的間隔頻率為5秒
#創建資源
kubectl apply -f pod4.yaml
kubectl get pods
#當中狀態不斷改變,就代表它正在不斷的進行檢查,然后不斷的執行重啟策略,其中的RESTARTS重啟值也會隨之增加
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。