您好,登錄后才能下訂單哦!
這篇文章主要講解了“kubernetes中怎么驗證deployment”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“kubernetes中怎么驗證deployment”吧!
k8s通常不會直接創建pod,而是通過controller來管理pod,以達到副本管理、滾動升級和集群級別的自愈能力。controller包括Deployment、ReplicaSet、DaemonSet、StatefuleSet、Job 等
1.kubectl run創建的pod沒有自愈功能,因為該pod沒有被controller所管理。
2.Deployment是最常用的部署無狀態服務的controller,用于管理replicaset和更新pod
3.創建Deployment后,Deployment contorller將立即創建一個ReplicaSet副本集,并由ReplicaSet創建所需要的pod。更新deployment時,deployment控制器將為deployment創建一個新的ReplicaSet副本集,并逐步在新的副本集中創建pod;在舊的的副本集中刪除pod,達到滾動更新的效果。
4.當且僅當Deployment的Pod template字段的內容發生變更時,Depoyment的發布更新才會觸發。
創建deployment
#命令行直接運行
kubectl create deployment nginx --image=nginx
#通過配置文件yaml創建
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驅逐
kubectl get pods -o wide 可看到node2被禁止調度,且controller管理的pod遷移到node1上運行了,而kubectl run的pod已被刪除
kubectl get rs 可看到對應的replicaset controller
#查看deployment的具體配置
kubectl edit deployment nginx
#將pod擴展為2
kubectl scale deployment nginx --replicas=2
#查看deployment nginx的滾動更新狀態
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,除非您繼續(resume)該 Deployment
kubectl rollout undo deployment nginx
kubectl rollout undo deployment nginx --to-revision=2
#暫停更新
kubectl rollout pause deployment nginx
#恢復更新
kubectl rollout resume deployment nginx
#導出deployment的配置文件
kubectl get deployment deploy_name -o yaml > deployment.yaml
#刪除 ReplicaSet 時,將不刪除其從屬對象
kubectl delete replicaset my-repset --cascade=false
用service暴露pod服務
kubectl expose deployment nginx --port=80 --type=NodePort
# 查看service
kubectl get svc
# 查看service對應的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”的內容了,經過本文的學習后,相信大家對kubernetes中怎么驗證deployment這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。