溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

kubernetes中怎么驗證deployment

發(fā)布時間:2021-12-31 09:11:42 來源:億速云 閱讀:185 作者:iii 欄目:云計算

這篇文章主要講解了“kubernetes中怎么驗證deployment”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“kubernetes中怎么驗證deployment”吧!

k8s通常不會直接創(chuàng)建pod,而是通過controller來管理pod,以達(dá)到副本管理、滾動升級和集群級別的自愈能力。controller包括Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等

1.kubectl run創(chuàng)建的pod沒有自愈功能,因為該pod沒有被controller所管理。

2.Deployment是最常用的部署無狀態(tài)服務(wù)的controller,用于管理replicaset和更新pod

3.創(chuàng)建Deployment后,Deployment contorller將立即創(chuàng)建一個ReplicaSet副本集,并由ReplicaSet創(chuàng)建所需要的pod。更新deployment時,deployment控制器將為deployment創(chuàng)建一個新的ReplicaSet副本集,并逐步在新的副本集中創(chuàng)建pod;在舊的的副本集中刪除pod,達(dá)到滾動更新的效果。

4.當(dāng)且僅當(dāng)Deployment的Pod template字段的內(nèi)容發(fā)生變更時,Depoyment的發(fā)布更新才會觸發(fā)。

創(chuàng)建deployment

#命令行直接運行

kubectl create deployment nginx --image=nginx

#通過配置文件yaml創(chuàng)建

kubectl create deployment nginx --image=nginx --dry-run='client' -o yaml > dep.yaml

kubectl apply -f dep.yaml

#刪除deployment

kubectl delete deployment nginx

kubectl delete -f dep.yaml

#驗證deployment管理的pod具有自愈性

kubectl run起一個pod, kubectl create deployment起一個controller管理的pod

kubectl get pods -o wide 檢查pod分布的node

kubectl drain node2 將分布到node2上的pod驅(qū)逐

kubectl get pods -o wide 可看到node2被禁止調(diào)度,且controller管理的pod遷移到node1上運行了,而kubectl run的pod已被刪除

kubectl get rs 可看到對應(yīng)的replicaset controller

#查看deployment的具體配置

kubectl edit deployment nginx

#將pod擴展為2

kubectl scale deployment nginx --replicas=2

#查看deployment nginx的滾動更新狀態(tài)

kubectl rollout status deployment nginx

#查看deployments

kubectl get deployments

#查看replicasets

kubectl get rs -w

#查看deployment的events

kubectl describe deployment

#查看更新歷史

kubectl rollout history deployment nginx

#回滾到前一個版本,不能回滾(rollback)一個已暫停的 Deployment,除非您繼續(xù)(resume)該 Deployment

kubectl rollout undo deployment nginx

kubectl rollout undo deployment nginx --to-revision=2

#暫停更新

kubectl rollout pause deployment nginx

#恢復(fù)更新

kubectl rollout resume deployment nginx

#導(dǎo)出deployment的配置文件

kubectl get deployment deploy_name -o yaml > deployment.yaml

#刪除 ReplicaSet 時,將不刪除其從屬對象

kubectl delete replicaset my-repset --cascade=false

用service暴露pod服務(wù)

kubectl expose deployment nginx --port=80 --type=NodePort

# 查看service

kubectl get svc

# 查看service對應(yīng)的endpoint

kubectl get endpoints

#驗證

curl   http://service-clusterIP

curl   http://nodeIP:32038

以上命令行運行的nginx,可用以下配置文件來云

vi nginx-dep-service.yaml

apiVersion: apps/v1

kind: Deployment

metadata:

name: web-nginx

labels:

app: nginx

spec:

replicas: 1

selector:

matchLabels:

app: nginx

template:

metadata:

labels:

app: nginx

spec:

containers:

- name: nginx

image: nginx

----------------------

apiVersion: v1

kind: Service

metadata:

name: web-nginx

labels:

apps: nginx

spec:

selector:

app: nginx

ports:

- name: web-nginx

protocol: TCP

port: 80

nodePort: 32600

targetPort: 80

type: NodePort

kubectl apply -f nginx-dep-service.yaml

感謝各位的閱讀,以上就是“kubernetes中怎么驗證deployment”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對kubernetes中怎么驗證deployment這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI