一. 设置kubectl输入命令自动补全
依次执行一下命令:
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
二. 名称简写
po (pod)
ns (命名空间namespace)
instance (实例)
svc (service服务): 定义一个pod的逻辑分组,一种可以访问他们的策略(微服务)。
cm (configMap): 存储全局配置变量的,将分布式系统中不同模块的环境变量统一到一个对象中管理。
ds (deamonSet):在每台计算机节点上运行一个守护进程(如日志采集等),有时pod处于pending可能是因为某个deamonSet没起来。
deploy (deployment)
三. 常用命令
kubectl获取命令
kubectl get node
获取节点信息kubectl get pods -o wide
获取pod详细信息kubectl get ns
获取所有namespacebukectl get deployment
获取deployment信息kubectl get svc
查看service信息kubectl describe svc
查看service信息kubectl get svc -n kube-system
查看service的ip地址kubectl -n {$namespace} get pods
在指定的namespace下获取资源kebuctl logs nginx
获取nginx pod的日志信息
kubectl创建pod
kubectl run nginx-deploy --image=nginx --port=80 --replicas=1 --dry-run=true
nginx-deploy 表示deployment的名称
--images 表示镜像的地址
--port 表示pod暴露的端口
--replicas 表示副本的个数
--dry-run 表示测试,不真正执行命令(测试命令是否正确),去掉该参数即真正执行命令
kubectl创建service
kubectl expose deployment nginx-deploy --name=nginx --port=80 --target-port=80 --protocol=TCP --type=ClusterIP
deployment nginx-deploy 表示导出哪个deployment到service
--name 创建service的名称
--port 表示service开放的端口
--target-port 表示pod的远端端口
--protocol 表示传输方式(tcp/udp)
--type 表示该service展现的范围(ClusterIP表示在集群内部使用)
kubectl创建交互式pod
kubectl run client --image=busybox --restart=Never --replicas=1 -it
创建一个交互式dns服务器的pod,当退出时该pod删除(--restart=Never)
kubectl升级pod
kubectl set image deployment nginx-deploy nginx-deploy=nginx:20190424
升级deployment为nginx-deploy的pod, 所使用的的镜像是nginx:20190424
kubectl rollout status deployment nginx-deploy
显示deployment为nginx-deploy的跟新过程.属于轮询更新,一个个更新的
kubectl rollout undo deployment nginx-deploy
如不指明nginx-deploy=nginx:20190424,那么就是回滚到上一个版本
kubectl修改配置
kubectl edit svc nginx
修改service的nginx的type类型为NodePort
kubectl针对资源清单的简单命令
kubectl create -f pod-demo.yaml
创建一个pod-demo的资源清单bukectl descride pod pod-demo
查看pod-demo创建详情过程kubectl logs pod-demo nginx-deploy
查看pod-demo的pod中的nginx-deploy容器日志kubectl exec -it pod-demo -c nginx-deploy --/bin/bash
交互式进入nginx-deploy容器进行操作kubectl delete pod pod-demo
删除pod-demo的podkubectl delete -f pod-demo.yaml
删除pod-demo的pod