kubectl api-resources
查看资源名称和对应的缩写。如namespaces的简写是ns,nodes的简写是no。
创建一个replicaset.yaml文件,以yaml的方式启动一个ReplicaSet。
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: frontend
labels:
app: guestbook
tier: frontend
spec:
#modify replicas according to your case
replicas: 4
selector:
matchLabels:
tier: frontend
template:
metadata:
labels:
tier: frontend
spec:
containers:
- name: php-redis
image: nginx:1.7.9
spec.replicas属性设置了创建pod的数量。
kubectl scale --replicas=3 -f replicaset.yaml
scale用于扩容和缩容。
kubectl describe rs frontend
查看ReplicaSet的描述信息。
kubectl get pods frontend-6hktb -o yaml | grep -A 10 owner
Pod的属主引用被设置为 ReplicaSet。
创建deployment.yaml文件。使用yaml的方式创建一个deployment。
kubectl apply -f deployment.yaml
创建一个Deployment的同时也会创建一个ReplicaSet。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
test: liufeifei
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80
kubectl get pod
查看deployment创建的Pod信息
docker ps |grep nginx-deployment-74d589986c-798f4
docker rm -f bc7e43648944
删除Pod的容器
nginx-deployment-74d589986c-798f4自动重启,RESTARTS为1。
kubectl delete pod nginx-deployment-74d589986c-t9xtl
删除了一个Pod之后,Deployment重新创建了一个Pod,达到设置的replicas的数量。
kubectl label pod nginx-deployment-74d589986c-h5kn8 app-
删除Pod的标签之后,Deployment会创建一个新的Pod。
kubectl get pods --show-labels
kubectl label pod nginx-deployment-74d589986c-h5kn8 app=nginx
给Pod添加上app=nginx标签之后,Deployment又会删除一个Pod。
yaml文件的spec.template.metadata.labels添加了一个标签。test: liufeifei
Deployment会将旧的Pod删除,重新创建新的Pod。
修改镜像的版本,会重新创建新的Pod。
kubectl set image deployment/nginx-deployment nginx=nginx:1.9
kubectl edit deployment nginx-deployment
vim deployment.yaml
kubectl apply -f deployment.yaml
kubectl rollout history deployment/nginx-deployment
kubectl rollout history deployment/nginx-deployment --revision=5
刚刚执行了几次镜像变更操作,每次都会重新生成一个ReplicaSet,当前只有一个有效。
kubectl get deployments.apps nginx-deployment -o yaml
kubectl rollout history deployment/nginx-deployment
kubectl rollout undo deployment/nginx-deployment --to-revision=2
kubectl delete rs nginx-deployment-56965684bc
删掉RS会将History也一并删除掉
kubectl get ds --all-namespaces
DaemonSet的简写是ds,主要是用来运行守护进程的。