(1)查看版本信息
(2)查看节点信息
(3)查看资源对象
(4)查看集群信息
(5)配置kubectl自动补全
source <(kubectl completion bash)
kubectl get [-o wide|json|yaml] [-n namespace]
获取资源的相关信息,-n指定命名空间,-o指定输出格式
resource可以是具体资源名称,如"pod nhinx-xxx";也可以是资源类型,如“pod,node,svc,deploy”多种资源使用逗号间隔;或者all(仅展示几种核心资源,并不完整)
–all-namespaces或-A:表示显示所有命名空间
–show-labels:显示所有标签
-l app:仅显示标签为app的资源
-l app=nginx:仅显示包含app标签,且值为nginx的资源
(1)查看master节点状态
[root@master01 ~]#kubectl get componentstatuses
[root@master01 ~]#kubectl get cs
[root@master01 ~]#kubectl get namespace
[root@master01 ~]#kubectl get ns
(1)查看default命名空间的所有资源
kubectl get all [-n default]
[root@master01 ~]#kubectl create ns zz
(3)删除命名空间
[root@master01 ~]#kubectl delete ns zz
(1)在命名空间kube-public创建副本控制器(deployment)来启动Pod(nginx-test)
[root@master01 ~]#kubectl create deployment nginx-zz --image=nginx -n kube-public
[root@master01 ~]#kubectl get deploy -n kube-public
NAME READY UP-TO-DATE AVAILABLE AGE
nginx-zz 0/1 1 0 45s
#get是用于获取资源的命令,deploy是资源类型的名称,-n kube-public是指定命名空间为 kube-public。
[root@master01 ~]#kubectl get pod -n kube-public
NAME READY STATUS RESTARTS AGE
nginx-zz-68484475d5-nlklk 0/1 ImagePullBackOff 0 2m8s
#get是用于获取资源的命令,pod是资源类型的名称,-n kube-public是指定命名空间为 kube-public。
(2)描述某个资源的详细信息
[root@master01 ~]#kubectl describe deployment nginx-zz -n kube-public
[root@master01 ~]#kubectl describe pod nginx-zz -n kube-public
(3)查看命名空间kube-public中pod信息
[root@master01 ~]#kubectl get pods -n kube-public
(4)登录容器
kubectl exec 可以跨主机登录容器,docker exec 只能在容器所在主机登录
[root@master01 ~]#kubectl exec -it nginx-zz-68484475d5-nlklk bash -n kube-public
由于存在 deployment/rc 之类的副本控制器,删除 pod 也会重新拉起来
[root@master01 ~]#kubectl get pods -n kube-public
NAME READY STATUS RESTARTS AGE
nginx-zz-68484475d5-nlklk 1/1 Running 0 33m
[root@master01 ~]#kubectl delete pod nginx-zz-68484475d5-nlklk -n kube-public
pod "nginx-zz-68484475d5-nlklk" deleted
[root@master01 ~]#kubectl get pods -n kube-public
NAME READY STATUS RESTARTS AGE
nginx-zz-68484475d5-c4t98 0/1 ContainerCreating 0 19s
(6)若无法删除pod,总是处于terminate状态,则要强行删除pod
grace-period表示过渡存活期,默认30s,在删除pod之前允许pod慢慢终止其上的容器进程,从而优雅的退出,0表示立即终止pod
[root@master01 ~]#kubectl delete pod nginx-zz-68484475d5-c4t98 -n kube-public --force --grace-period=0
[root@master01 ~]#kubectl get pod -n kube-public
(1)扩容
[root@master01 ~]#kubectl scale deployment nginx-zz --replicas=3 -n kube-public
[root@master01 ~]#kubectl scale deployment nginx-zz --replicas=1 -n kube-public
[root@master01 ~]#kubectl delete deployment nginx-zz -n kube-public
(1)增加label
[root@master01 ~]#kubectl get deploy --show-labels
NAME READY UP-TO-DATE AVAILABLE AGE LABELS
nginx 1/1 1 1 20h app=nginx
[root@master01 ~]#kubectl label deploy nginx version=nginx1.14
[root@master01 ~]#kubectl label deploy nginx version-
[root@master01 ~]#kubectl get deploy --show-labels
[root@master01 ~]#kubectl get deploy/nginx -o yaml
[root@master01 ~]#kubectl get service nginx -o yaml
[root@master01 ~]#kubectl explain deployment.metadata
[root@master01 ~]#kubectl explain service.metadata
(1)修改yaml文件,并用kubectl apply -f xxxx.yaml文件使之生效
注意:当apply不生效时,先使用delete清除资源,再apply创建资源
[root@master01 ~]#kubectl get service nginx -o yaml > nginx-svc.yaml
[root@master01 ~]#vim nginx-svc.yaml
(2)删除资源
[root@master01 ~]#kubectl delete -f nginx-svc.yaml
(3)新建资源
[root@master01 ~]#kubectl apply -f nginx-svc.yaml
(4)在线修改
直接使用kubectl edit service nginx-service在线编辑配置资源清单并保存退出即时生效(如port: 888)
此修改方式不会对yaml文件内容修改
[root@master01 ~]#kubectl edit service nginx
(1)陈述式删除
[root@master01 ~]#kubectl delete service nginx
(2)声明式删除
[root@master01 ~]#kubectl delete -f nginx-svc.yaml