Deployment 介紹
是一種Pod控制器(有很多種控制器),是一種無狀态服務(可以部署web微服務),具有上線部署,滾動更新、建立副本、復原到以前某一版本(成功/穩定)等功能
Deployment 包含 ReplicaSet,除非需要自定義更新功能或者根本不需要更新 Pod,否則還是建議使用 Deployment 而不直接使用 ReplicaSet
一、通過指令行建立
1、建立
kubectl run nginx --image=nginx --replicas=2
nginx:應用名稱
--replicas:指定應用運作的 pod 副本數
--image:使用的鏡像(預設從dockerhub拉取)
2、檢視 deployment
[[email protected] yaml]# kubectl get deployment 或者 kubectl get deploy
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 2/2 2 2 19m
3、檢視 replicaset
[[email protected] yaml]# kubectl get replicaset 或者 kubectl get rs
NAME DESIRED CURRENT READY AGE
nginx-5578584966 2 2 2 18m
4、檢視 pod
[[email protected] yaml]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-5578584966-m7fcz 1/1 Running 0 45s 10.244.2.5 node2 <none> <none>
nginx-5578584966-nmffb 1/1 Running 0 45s 10.244.1.4 node1 <none> <none>
二、通過 yaml 資源清單檔案建立
1、建立檔案
vim deploy-nginx.yaml
# 檔案内容
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-app
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
2、建立
kubectl apply -f deploy-nginx.yaml
三、删除 Deployment
1、通過 指令行建立的
kubectl delete deploy nginx
2、如果 資源清單檔案建立的,除了指令行方法,還可以這樣删除
kubectl delete -f deploy-nginx.yaml