K8s ❉ Deployment
一介绍在k8s中,Pod是最小的控制单元,但是k8s很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器勇于pod的管理,确保pod资源符合预期的状态,当pod资源出现故障时,会尝试进行重启或重建pod。在k8s中Pod的控制器很多,此处只介绍一种:Deployment。二操作1命令因版本原因,可能有些命令参数不能使用,这个理解就好# 命令格式:kubectl create depl
·
一 介绍
在k8s中,Pod是最小的控制单元,但是k8s很少直接控制Pod,一般都是通过Pod控制器来完成的。Pod控制器勇于pod的管理,确保pod资源符合预期的状态,当pod资源出现故障时,会尝试进行重启或重建pod。
在k8s中Pod的控制器很多,此处只介绍一种:Deployment。
二 操作
1 命令
因版本原因,可能有些命令参数不能使用,这个理解就好
# 命令格式:kubectl create deployment 名称 [参数]
# --image 指定pod的镜像
# --port 指定pod的端口
# --replicas:指定创建pod的数量
# --namespace 指定namespace
[root@master ~]#kubectl create deploy nginx --image=nginx:latest --port=80 --replicas=3 -n dev
deployment.apps/nginx created
# 查看创建的pod
[root@master ~]#kubectl get pods -n dev
NAME READY STATUS RESTARTS AGE
nginx-5ff7956ff6-6k8cb 1/1 Running 0 19s
nginx-5ff7956ff6-jxfjt 1/1 Running 0 19s
nginx-5ff7956ff6-v6jqw 1/1 Running 0 19s
# 查看deployment信息
[root@master ~]#kubectl get deploy -n dev
NAME READY UP-TO-DATE AVAILABLE AGE
nginx 3/3 3 3 2m42s
# UP-TO-DATE:成功升级的副本数量
# AVAILABLE:可用副本的数量
[root@master ~]#kubectl get deploy -n dev -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx 3/3 3 3 2m51s nginx nginx:latest run=nginx
# 查看deployment详细信息
[root@master ~]#kubectl get deploy nginx -n dev -o wide
Name: nginx
Namespace: dev
CreationTimestamp: Wed, 08 May 2021 11:14:14 +0800
Labels: run=nginx
Annotations: deployment.kubernetes.io/revision: 1
Selector: run=nginx
Replicas: 3 desired | 3 updated | 3 total | 3 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 25% max unavailable, 25% max surge
Pod Template:
Labels: run=nginx
Containers:
nginx:
Image: nginx:latest
Port: 80/TCP
Host Port: 0/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-5ff7956ff6 (3/3 replicas created)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ScalingReplicaSet 5m43s deployment-controller Scaled up replicaset nginx-5ff7956ff6 to 3
# 删除
[root@master ~]#kubectl delete deploy nginx -n dev
deployment.apps "nginx" deleted
2 配置
创建一个deploy-nginx.yaml,内容如下:
apiVersion: apps/v1
kind: deployment
metadata:
name: nginx
namespace: dev
dev:
replicas: 3
selector:
matchlabels:
run: nginx
template:
metadata:
labels:
run: nginx
spec:
containers:
- image: nginx:latest
name: nginx
ports:
- containerPort: 80
protocol: TCP
然后就可以执行对应的创建和删除命令了:
# 创建
kubectl create -f deploy-nginx.yaml
# 删除
kubectl delete -f deploy-nginx.yaml
更多推荐
已为社区贡献18条内容
所有评论(0)