您好,登錄后才能下訂單哦!
CrashLoopBackOff: 容器退出,kubelet正在將它重啟
InvalidImageName: 無法解析鏡像名稱
ImageInspectError: 無法校驗鏡像
ErrImageNeverPull: 策略禁止拉取鏡像
ImagePullBackOff: 正在重試拉取
RegistryUnavailable: 連接不到鏡像中心
ErrImagePull: 通用的拉取鏡像出錯
CreateContainerConfigError: 不能創建kubelet使用的容器配置
CreateContainerError: 創建容器失敗
m.internalLifecycle.PreStartContainer 執行hook報錯
RunContainerError: 啟動容器失敗
PostStartHookError: 執行hook報錯
ContainersNotInitialized: 容器沒有初始化完畢
ContainersNotReady: 容器沒有準備完畢
ContainerCreating:容器創建中
PodInitializing:pod 初始化中
DockerDaemonNotReady:docker還沒有完全啟動
NetworkPluginNotReady: 網絡插件還沒有完全啟動
K8S-YAML的使用及命令
YAML配置文件管理對象
對象管理:
# 創建deployment資源
kubectl create -f nginx-deployment.yaml
# 查看deployment
kubectl get deploy
# 查看ReplicaSet
kubectl get rs
# 查看pods所有標簽
kubectl get pods --show-labels
# 根據標簽查看pods
kubectl get pods -l app=nginx
# 滾動更新鏡像
kubectl set image deployment/nginx-deployment nginx=nginx:1.11
或者
kubectl edit deployment/nginx-deployment
或者
kubectl apply -f nginx-deployment.yaml
# 實時觀察發布狀態:
kubectl rollout status deployment/nginx-deployment
# 查看deployment歷史修訂版本
kubectl rollout history deployment/nginx-deployment
kubectl rollout history deployment/nginx-deployment --revision=3
# 回滾到以前版本
kubectl rollout undo deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment --to-revision=3
# 擴容deployment的Pod副本數量
kubectl scale deployment nginx-deployment --replicas=10
# 設置啟動擴容/縮容
kubectl autoscale deployment nginx-deployment --min=10 --max=15 --cpu-percent=80
對象管理實例:vim nginx.deployment.yaml
apiVersion: apps/v1beta2
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
服務發現實例:vim nging.service.yaml
apiVersion: v1
kind: Service
metadata:
labels:
run: nginx
name: nginx
namespace: default
spec:
ports:
- port: 88
targetPort: 80
selector:
app: nginx
清理:
# kubectl delete -f nginx-deployment.yaml
# kubectl delete -f nginx-service.yaml
POD作用:
Pod管理-創建/查詢/更新/刪除
基本管理:
# 創建pod資源
kubectl create -f pod.yaml
# 查看pods
kubectl get pods pod-test
# 查看pod描述
kubectl describe pod pod-test
# 替換資源
kubectl replace -f pod.yaml -force
# 刪除資源
kubectl delete pod pod-test
支持三種策略:
Always:當容器終止退出后,總是重啟容器,默認策略。
OnFailure:當容器異常退出(退出狀態碼非0)時,才重啟容器。
Never:當容器終止退出,從不重啟容器。
Pod實例:vim pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-test
labels:
os: centos
spec:
containers:
- name: hello
image: centos:7
env:
- name: Test
value: "123456"
command: ["bash","-c","while true;do date;sleep 1;done"]
restartPolicy: OnFailure
Pod管理-健康檢查:
提供Probe機制,有以下兩種類型:
livenessProbe
如果檢查失敗,將殺死容器,然后根據Pod的重啟策略來決定是否
重啟。
readinessProbe
如果檢查失敗,Kubernetes會把Pod從服務代理的分發后端剔除。
Probe支持以下三種檢查方法:
httpGet
發送HTTP請求,返回200-400范圍狀態碼為成功。
exec
執行Shell命令返回狀態碼是0為成功。
tcpSocket
發起TCP Socket建立成功。
實例:vim pod2.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- containerPort: 80
livenessProbe:
httpGet:
path: /index.html
port: 80
Pod管理-數據持久化和共享:
vim pod3.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-test1
labels:
test: centos
spec:
containers:
# 第一個容器
- name: hello-write
image: centos:7
command: ["bash","-c","for i in {1..1000};do echo $i >> /data/hello;sleep 1;done"]
# 第二個容器
- name: hello-read
image: centos:7
command: ["bash","-c","for i in {1..1000};do cat $i >> /data/hello;sleep 1;done"]
volumeMounts:
- name: data
mountPath: /data
# 數據卷
volumes:
- name: data
hostPath:
path: /data
Pod端口映射:
vim pod4.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.10
ports:
- name: http
containerPort: 80
hostIP: 0.0.0.0
hostPort: 80
protocol: TCP
- name: https
containerPort: 443
hostIP: 0.0.0.0
hostPort: 443
protocol: TCP
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。