K8S常用命令

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

发表回复