1.基本操作
create,delete,get,run,expose,set,explain,edit
1.1 get
shell
1. 显示kubectl的版本信息
kubectl version
2. 显示集群的基本信息
kubectl cluster-info
3. 显示所有的节点信息
kubectl get nodes
4. 显示所有的pods信息
kubectl get pods
5. 创建pods
kubectl create deployment {name} --image={image}
6. 修改pods的数量
kubectl scale deployment {name} --replicas={num}
7. 显示指定的pod的详细信息
kubectl describe pod {name}
8. 显示指定pod的日志信息
kubectl logs {name}
9. 进入指定pod的bash终端
kubectl exec -it {name} -- /bin/bash
10. 删除pods
kubectl delete deployment {name}
11. 编辑svc
kubectl edit svc {name}
-------------------------------------------------------------------------------
# 查看所有的资源信息
kubectl get all
# 查看pod列表
kubectl get pod
# 显示pod节点的标签信息
kubectl get pod --show-labels
# 根据指定标签匹配到具体的pod
kubectl get pods -l app=example
# 查看node节点列表
kubectl get node
# 显示node节点的标签信息
kubectl get node --show-labels
# 查看pod详细信息,也就是可以查看pod具体运行在哪个节点上(ip地址信息)
kubectl get pod -o wide
# 查看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息
kubectl get svc
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
go-service NodePort 10.10.10.247 <none> 8089:33702/TCP 29m
java-service NodePort 10.10.10.248 <none> 8082:32823/TCP 5h17m
kubernetes ClusterIP 10.10.10.1 <none> 443/TCP 5d16h
nginx-service NodePort 10.10.10.146 <none> 88:34823/TCP 2d19h
# 查看命名空间
kubectl get ns
# 查看所有pod所属的命名空间
kubectl get pod --all-namespaces
# 查看所有pod所属的命名空间并且查看都在哪些节点上运行
kubectl get pod --all-namespaces -o wide
# 查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息
kubectl get rs
[root@master ~]# kubectl get rs
NAME DESIRED CURRENT READY AGE
go-deployment-58c76f7d5c 1 1 1 32m
java-deployment-76889f56c5 1 1 1 5h21m
nginx-deployment-58d6d6ccb8 3 3 3 2d19h
# 查看目前所有的deployment
kubectl get deployment
[root@master ~]# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
go-deployment 1/1 1 1 34m
java-deployment 1/1 1 1 5h23m
nginx-deployment 3/3 3 3 2d19h
# 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息
kubectl get deploy -o wide
[root@master bin]# kubectl get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx 3/3 3 3 16m nginx nginx:1.10 app=example
1. 显示kubectl的版本信息
kubectl version
2. 显示集群的基本信息
kubectl cluster-info
3. 显示所有的节点信息
kubectl get nodes
4. 显示所有的pods信息
kubectl get pods
5. 创建pods
kubectl create deployment {name} --image={image}
6. 修改pods的数量
kubectl scale deployment {name} --replicas={num}
7. 显示指定的pod的详细信息
kubectl describe pod {name}
8. 显示指定pod的日志信息
kubectl logs {name}
9. 进入指定pod的bash终端
kubectl exec -it {name} -- /bin/bash
10. 删除pods
kubectl delete deployment {name}
11. 编辑svc
kubectl edit svc {name}
-------------------------------------------------------------------------------
# 查看所有的资源信息
kubectl get all
# 查看pod列表
kubectl get pod
# 显示pod节点的标签信息
kubectl get pod --show-labels
# 根据指定标签匹配到具体的pod
kubectl get pods -l app=example
# 查看node节点列表
kubectl get node
# 显示node节点的标签信息
kubectl get node --show-labels
# 查看pod详细信息,也就是可以查看pod具体运行在哪个节点上(ip地址信息)
kubectl get pod -o wide
# 查看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息
kubectl get svc
[root@master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
go-service NodePort 10.10.10.247 <none> 8089:33702/TCP 29m
java-service NodePort 10.10.10.248 <none> 8082:32823/TCP 5h17m
kubernetes ClusterIP 10.10.10.1 <none> 443/TCP 5d16h
nginx-service NodePort 10.10.10.146 <none> 88:34823/TCP 2d19h
# 查看命名空间
kubectl get ns
# 查看所有pod所属的命名空间
kubectl get pod --all-namespaces
# 查看所有pod所属的命名空间并且查看都在哪些节点上运行
kubectl get pod --all-namespaces -o wide
# 查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息
kubectl get rs
[root@master ~]# kubectl get rs
NAME DESIRED CURRENT READY AGE
go-deployment-58c76f7d5c 1 1 1 32m
java-deployment-76889f56c5 1 1 1 5h21m
nginx-deployment-58d6d6ccb8 3 3 3 2d19h
# 查看目前所有的deployment
kubectl get deployment
[root@master ~]# kubectl get deployment
NAME READY UP-TO-DATE AVAILABLE AGE
go-deployment 1/1 1 1 34m
java-deployment 1/1 1 1 5h23m
nginx-deployment 3/3 3 3 2d19h
# 查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息
kubectl get deploy -o wide
[root@master bin]# kubectl get deploy -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
nginx 3/3 3 3 16m nginx nginx:1.10 app=example
1.2 delete
删除资源
bash
# 根据yaml文件删除对应的资源,但是yaml文件并不会被删除,这样更加高效
kubectl delete -f javak8s-deployment.yaml
kubectl delete -f javak8s-service.yaml
kubectl delete 具体的资源名称
# 根据yaml文件删除对应的资源,但是yaml文件并不会被删除,这样更加高效
kubectl delete -f javak8s-deployment.yaml
kubectl delete -f javak8s-service.yaml
kubectl delete 具体的资源名称
1.3 run
在集群中创建并运行一个或多个容器镜像
bash
# 基本语法
run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
# 示例,运行一个名称为nginx,副本数为3,标签为app=example,镜像为nginx:1.10,端口为80的容器实例
kubectl run nginx --replicas=3 --labels="app=example" --image=nginx:1.10 --port=80
其他用法参见:http://docs.kubernetes.org.cn/468.html
# 基本语法
run NAME --image=image [--env="key=value"] [--port=port] [--replicas=replicas] [--dry-run=bool] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
# 示例,运行一个名称为nginx,副本数为3,标签为app=example,镜像为nginx:1.10,端口为80的容器实例
kubectl run nginx --replicas=3 --labels="app=example" --image=nginx:1.10 --port=80
其他用法参见:http://docs.kubernetes.org.cn/468.html
1.4 expose
创建一个service服务,并且暴露端口让外部可以访问
bash
# 创建一个nginx服务并且暴露端口让外界可以访问
kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service
关于expose的详细用法参见:http://docs.kubernetes.org.cn/475.html
# 创建一个nginx服务并且暴露端口让外界可以访问
kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service
关于expose的详细用法参见:http://docs.kubernetes.org.cn/475.html
1
2.调试和故障排查
shell
1. 显示指定节点的详细信息
kubectl describe node {name}
2. 显示指定deployment的详细信息
kubectl describe deployment {name}
3. 显示指定service的详细信息
kubectl describe service {name}
4. 显示所有事件信息
kubectl get events
5. 显示所有事件信息,并按照创建时间排序
kubectl get events --sort-by=.metadata.creationTimestamp
6. 显示所有namespace下的pods信息
kubectl get pods --all-namespaces
7. 显示所有namespace下的deployment信息
kubectl get deployments --all-namespaces
8. 显示所有namespace下的service信息
kubectl get services --all-namespaces
9. 显示所有已禁用调度的节点信息
kubectl get nodes -o yaml | grep -A5 -B2 SchedulingDisabled
10. 运行一个busybox容器并进行调试
kubectl run -i --tty busybox --image=busybox --restart=Never -- sh
1. 显示指定节点的详细信息
kubectl describe node {name}
2. 显示指定deployment的详细信息
kubectl describe deployment {name}
3. 显示指定service的详细信息
kubectl describe service {name}
4. 显示所有事件信息
kubectl get events
5. 显示所有事件信息,并按照创建时间排序
kubectl get events --sort-by=.metadata.creationTimestamp
6. 显示所有namespace下的pods信息
kubectl get pods --all-namespaces
7. 显示所有namespace下的deployment信息
kubectl get deployments --all-namespaces
8. 显示所有namespace下的service信息
kubectl get services --all-namespaces
9. 显示所有已禁用调度的节点信息
kubectl get nodes -o yaml | grep -A5 -B2 SchedulingDisabled
10. 运行一个busybox容器并进行调试
kubectl run -i --tty busybox --image=busybox --restart=Never -- sh