1. Node操作 —–
1. 创建标签$ kubectl label node {node name} env_role=prod
2. 查看labels$ kubectl get nodes {node name} --show-labels
2. Master节点操作
1. 创建Pod$ kubectl create deployment web --image=nginx
2. 复制多个Pod$ kubectl scale deployment web --replicas=5 -n {ns-name}
3. 删除Pod$ kubectl delete deployment web
3. 污点操作
1. 查看污点情况$kubectl describe node {node_name} |grep Taint
2. 为节点添加污点:$ kubectl taint node {node_name} key=value:{污点的三个值} ex) kubectl taint node node1 env_role=yes:NoSchedule
3. 删除污点:$ kubectl taint node node1 env_role:NoSchedule- 或)$ kubectl taint node node1 env_role-
4. Deployment操作
1. 生成yaml文件$ kubectl create deployment web --image=nginx --dry-run -o yaml > web.yaml
2. 使用Deployment部署应用$kubectl apply -f web.yaml $ kubectl get pods //查看Pod状态
3. 对外发布(暴露端口号)$ kubectl expose deployment web --port=80(当前端口) --type=NodePort --target-port=80(对外发布端口) --name=web1 -o yaml > web1.yaml $ kubectl apply -f web1.yaml $ kubectl get pods,svc //查看Pod状态,会显示对外暴露端口
5. Deployment操作:升级、回滚和弹性伸缩
1. 应用升级$ kubectl apply -f web.yaml //nginx版本1.14
因为是通过镜像创建的,因此升级镜像,web为应用名称$ kubectl set image deployment web nginx=nginx:1.15 deployment.apps/web image updated
查看升级状态$ kubectl rollout status deployment web deployment "web" successfully rolled out
2. 应用回滚 查看历史版本$ kubectl rollout history deployment web
回滚到上一版本$ kubectl rollout undo deployment web
回滚到特定版本$ kubectl rollout undo --history $kubectl rollout undo deployment web --to -reversion=2
3. 弹性伸缩$ kubectl scale deployment web --replicas=5 -n {ns-name}
6. Controller操作
1. 进入Pod$ kubectl exec -it ds-test-cbk6v bash
2. 查看镜像拉取情况$ docker pull perl
3. 查看一次性job$ kubectl get jobs
4. 查看日志,确定job运行结果$ kubectl logs pi-qpqff<PodId>
5. 查看定时任务Cronjob$ kubectl get cronjobs
6. 删除创建的Pod$kubectl delete svc web $ kubectl delete statefulset --all
7. 按nodeName排序Pod(可以通过这么命令查看各node中都有什么Pod)$ kubectl get pods -o wide --sort-by="{.spec.nodeName}" -n {ns-name} ex)$ kubectl get pods -o wide --sort-by="{.spec.nodeName}" -n lcsm-2|grep p2cn1lcsm4887
7. 查看命令
1. 查看事件$ kubectl get event
2. 查看集群node信息$ kubectl describe nodes {node-name} $ kubectl describe nodes --show-events
3. 查看node或pod资源信息$ kubectl top nodes {node-name} $ kubectl top node ip-10-248-158-161.cn-north-1.compute.internal NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% ip-10-248-158-161.cn-north-1.compute.internal 98m 1% 1390Mi 9% $ kubetl top pod {pod-name} -n {ns-name} $ kubectl top pod terms-acc-a-68b8d44784-pxq5d -n lcsm NAME CPU(cores) MEMORY(bytes) terms-acc-a-68b8d44784-pxq5d 8m 237Mi
4. 缩减副本$ kubectl scale --replicas=1 deploy cns-info-a -n lcsm-common
5. 修改副本数量$ kubectl edit deploy cns-info-a -n lcsm-common