Pod是Kubernetes調(diào)度的最小單元。一個Pod可以包含一個或多個容器,因此它可以被看作是內(nèi)部容器的邏輯宿主機。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了濱湖免費建站歡迎大家使用!
pod和container的資源請求和限制
#cpu上限
spec.containers[].resources.limits.cpu
#內(nèi)存上限
spec.containers[].resources.limits.memory
#創(chuàng)建時分配的基本cpu資源
spec.containers[].resources.requests.cpu
#創(chuàng)建時分配的基本內(nèi)存資源
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
#沒有設(shè)定重啟策略時默認為Always
#創(chuàng)建pod3.yaml文件
vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:
name: foo
spec:
containers:
- name: busybox
image: busybox
args:
#參數(shù)
- /bin/sh
#在shell環(huán)境中
- -c
#command命令
- sleep 30; exit 3
#容器啟動后休眠30s,異常退出返回狀態(tài)碼為非0值
#創(chuàng)建資源
kubectl apply -f pod3.yaml
kubectl get pods
#此時會出現(xiàn)Error報錯,因剛剛設(shè)置的異常退出,一會再查看時RESTARTS重啟值會變?yōu)?、
#修改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
#添加重啟策略
#創(chuàng)建資源
kubectl apply -f pod3.yaml
livenessProbe 如果檢查失敗,將殺死容器,根據(jù)Pod的restartPolicy來操作
ReadinessProbe 如果檢查失敗,kubernetes會把Pod從service endpoints后端節(jié)點中中剔除
httpGet 發(fā)送http請求,返回200-400范圍狀態(tài)碼為成功
exec 執(zhí)行Shell命令返回狀態(tài)碼是0為成功
tcpSocket 發(fā)起TCP Socket建立成功
#創(chuàng)建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
#創(chuàng)建一個空文件,休眠30s,刪除這個空文件
livenessProbe:
exec:
#探測健康
command:
#command命令
- cat
#執(zhí)行查看命令
- /tmp/healthy
#創(chuàng)建的空文件
initialDelaySeconds: 5
#容器創(chuàng)建完成5秒之后開始健康檢查
periodSeconds: 5
#檢查的間隔頻率為5秒
#創(chuàng)建資源
kubectl apply -f pod4.yaml
kubectl get pods
#當中狀態(tài)不斷改變,就代表它正在不斷的進行檢查,然后不斷的執(zhí)行重啟策略,其中的RESTARTS重啟值也會隨之增加