kubenetes v1.5.2 常用命令
查看版本
[root@master ~]# kubectl version
查看pods (缩写pod、po 只要唯一即可)
[root@master ~]# kubectl get pods
查看pod建立在哪个node上 (node 缩写no 只要唯一即可)
[root@master ~]# kubectl get pods -o wide
[root@master ~]# kubectl get pods -o wide --all-namespaces
查看deployment状态 (deployment 缩写 deploy 只要唯一即可)
[root@master ~]# kubectl get deployment
上一条命令出现No resources found.时 用下面这条命令加上--all-namespaces参数,不加就只显示default的namespaces
[root@master ~]# kubectl get deployment --all-namespaces
查看服务(service 缩写 svc 只要唯一即可)
[root@master ~]# kubectl get service
service全部显示也要加--all-namespaces
[root@master ~]# kubectl get svc --all-namespaces
describe查看Pod、node等详细信息(一般排错时用) ,要跟上pod的全部名字
[root@master ~]# kubectl describe pod mysql-2261771434-28hjp
[root@master ~]# kubectl describe node node1
查看pod里容器的log
[root@master ~]# kubectl get pod #先查看pod的名字 [root@master ~]# kubectl log mysql-2261771434-28hjp #用查到的pod名字去查看
查看具体的pod错误
[root@master ~]# kubectl get pods -o wide --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE kube-system kubernetes-dashboard-latest-4008409309-srxl8 0/1 ImagePullBackOff 0 24m 10.255.86.2 node1 [root@master ~]# kubectl log -f kubernetes-dashboard-latest-4008409309-srxl8 -n kube-system
查看Log,Attach实时显示消息,log是列出已有的内容。(比Log命令更新详细)
[root@master ~]# kubectl get pod #先查看容器name [root@master ~]# kubectl attach mysql-2261771434-28hjp
在pod容器中执行一条命令
[root@master ~]# kubectl get pod #先查看容器name [root@master ~]# kubectl exec mysql-2261771434-28hjp ls /etc #查看容器的/etc目录
进入Pod的交互模式
[root@master ~]# kubectl get pod #先查看容器name [root@master ~]# kubectl exec -it mysql-2261771434-28hjp /bin/bash #进入到bash交互模式
从Pod容器内拷入 、拷出文件
[root@master ~]# kubectl cp mysql-2261771434-28hjp:/tmp/hosts hosts #将远程hosts文件拷到本地(本地文件名必须要写) [root@master ~]# kubectl cp hosts mysql-2261771434-28hjp:/tmp/ #将本地的hosts文件拷入到容器中
注意:cp命令需要tar命令支持,否则cp时会报错:error: unexpected EOF,点击查看cp报错解决方法
(events 缩写ev 只要唯一即可)
(replicasets 缩写rs 只要唯一即可)
(replicationcontrollers 缩写 rc 只要唯一即可)
(namespaces缩写ns 只要唯一即可)
删除一个名字为nginx3的pods
[root@master ~]# kubectl delete deployment nginx3
删除一个名为node31的node
[root@master ~]# kubectl delete node node31
删除一个非默认的deployment ,删除时要指出name 和-n namespace
[root@master ~]# kubectl get deployment --all-namespaces NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE kube-system kubernetes-dashboard-latest 1 1 1 0 45m [root@master ~]# kubectl delete deployment kubernetes-dashboard-latest -n kube-system deployment "kubernetes-dashboard-latest" deleted
删除一个已经存在的service服务
[root@master ~]# kubectl delete -f dashboard-service.yaml
新创建一个pod:
[root@master ~]# kubectl run nginx3 --image=docker.io/nginx --replicas=1 --port=9003
注意 nginx3和port,再创建其他Pod时不能重复
--image 指定创建的镜像
--replicas 指定此pod里的容器数量
--port pod对外通信端口
新创建yaml配置文件启动:
[root@master ~]# kubectl create -f mysql-deployment.yaml
新创建yaml批量文件启动:文件放一个目录下,直接指定该目录
[root@master ~]# kubectl create -f yamls/