常用命令
1.查看目前部署的资源
kubectl get pods,service
2.启动
kubectl apply -f demo.yaml

3.升级
1.滚动升级
直接修改yaml文件中的镜像images版本
查看升级过程
Kubectl describe deploy.yaml web
2.免交互升级
kubectl set image deployment(指定创建资源的角色/类型 ) web(元数据名称) nginx=nginx:1.18
4.资源创建
# 通过文件创建一个Deployment
kubectl create -f /path/to/deployment.yaml
cat /path/to/deployment.yaml | kubectl create -f -
# 不过一般可能更常用下面的命令来创建资源
kubectl apply -f /path/to/deployment.yaml
# 通过kubectl命令直接创建
kubectl run nginx_app --image=nginx:1.9.1 --replicas=3
5.资源查看
# 一般命令的格式会如下:
kubectl get <resource_type>
# 比如获取K8s集群下pod的信息
kubectl get pod
# 更加详细的信息
kubectl get pod -o wide
# 指定资源的信息,格式:kubectl get <resource_type>/<resource_name>,比如获取deployment nginx_app的信息
kubectl get deployment/nginx_app -o wide
# 也可以对指定的资源进行格式化输出,比如输出格式为json、yaml等
kubectl get deployment/nginx_app -o json
# 还可以对输出结果进行自定义,比如对pod只输出容器名称和镜像名称
kubectl get pod httpd-app-5bc589d9f7-rnhj7 -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image
# 获取某个特定key的值还可以输入如下命令得到,此目录参照go template的用法,且命令结尾'\n'是为了输出结果换行
kubectl get pod httpd-app-5bc589d9f7-rnhj7 -o template --template='{{(index spec.containers 0).name}}{{"\n"}}'
# 还有一些可选项可以对结果进行过滤,这儿就不一一列举了,如有兴趣,可参照kubectl get --help说明
6.回滚
# 回滚之前先查看历史版本信息
kubectl rollout history deployment/nginx_app
# 回滚
kubectl rollout undo deployment/nginx_app
# 当然也可以指定版本号回滚至指定版本
kubectl rollout undo deployment/nginx_app --to-revision=<version_index>
7.总结
1.获取namespace信息
kubectl get namespace
2.查看版本
kubectl version
3.对node的操作
3.1查看node列表详细信息:
kubectl get node -o wide --all-namespaces
kubectl get node -o wide | grep NotReady #筛选NotReady节点
3.2查看某个node详细信息
kubectl describe node + nodename
3.3 删除node
kubectl delete node + nodename
4.对pod的操作
4.1查看pod列表信息
kubectl get pods -o wide --all-namespaces #查看所有pod;
kubectl get po -o wide | grep -v Running #筛选状态不是Running的pod
kubectl get po --all-namespaces | grep Evicted #筛选被驱逐的pod
4.2查看某个pod的详细信息、日志
kubectl describe po <pod name>
kubectl logs -f <pod name> -n <namespace>
kubectl logs --tail=10 <pod name> -n <namespace> //打印行数(想从最新的开始打印就tail=1或者2或者3,都可以,反正是想要打印最新的实时日志)
kubectl -n middlewares logs mongo-mongodb-replicaset-0 -c bootstrap //bootstrap 可以查启动的日志?
kubectl logs majordomo-7b7dcc8c7d-pb9z8 -c majordomo --previous
4.3 进入某个pod的方法。
kubectl exec -it majordomo-6fbff7f5bb-mqhwg -c majordomo /bin/bash //majordomo
nc -zvw1 security-pass-fb-nonmotor-motor-hd-mid-0.security-pass-fb-nonmotor-motor-hd-mid-svc 29000 //在pod中查询网络外部pod的网络连接
4.4 删除pod,删除的pod会自动拉起。
kubectl delete pod <pod-name> -n <namespace>
5.对k8s相关配置项的操作
kubectl get cm --all-namespaces #查看所有配置项列表
kubectl get cm -n <namespaces> < xx-xx-cfg> -oyaml #查看某个配置项详情
kubectl edit cm -n <namespaces> < xx-xx-cfg> #编辑某个配置项的内容,修改后需要重启pod
6.查看应用
kubectl get deployment --all-namespaces #查看部署的应用;
kubectl get deployment --namespace=kube-system kong -o yaml
kubectl delete deployment --namespace=kube-system kong #删除指定的应用;
7.查看服务
kubectl get services --all-namespaces
kubectl get service <serviceName>
kubectl get rc,service #查看rc、service对象
kubectl get endpoints
kubectl get endpoints --all-namespaces
kubectl describe service <serviceName> --namespace=d07a12d56-fe42-4b27-a18
8.按照yaml或json格式查看pod信息,包含k8s的manage的pod的镜像的版本号:
kubectl get pod podname --namespace=spacesname -o yaml
9.查看replicaset:
kubectl get replicaset #replicaset是用来管理实例数量的,可以看成是rc/deployment的一个对象。