kubernetes kubect命令总结
作者:会飞的zxl
设置kubectl shell命令自动补全kubectlcompletion-hsudoyum-yinstallbash-completionsource/usr/share/bash-completion/bash_completiontype_init_completionecho'source<(kubectlcompletionbash)'>>~/.bashrcsource~/.bashrc查看集群和版本相关信息kubectlvers
设置kubectl shell命令自动补全
kubectl completion -h
sudo yum -y install bash-completion
source /usr/share/bash-completion/bash_completion
type _init_completion
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc
查看集群和版本相关信息
kubectl version
//显示客户端和服务器侧版本信息kubectl api-versions
//列出当前版本的kubernetes的服务器端所支持的api版本信息kubectl cluster-info
//获取k8s集群信息kubectl config view
//获取k8s集群管理配置信息,也就是 .kube/config 文件内容
获取帮助详细信息
kubectl explain po //查看帮助信息和help类似,尤其是资源清单的结构字段信息
//查看帮助信息,资源下的cpu和memory等,每个配置项都有详细的网页手册地址kubectl explain Deployment.spec.template.spec.containers.resources
kubectl cp fileName podName:/fileName //复制文件到pod的指定目录,也可从容器中复制文件到外部
常用获取资源方式
kubectl get pods
//查看pod信息kubectl get pods -wide
//已监控方式查看pod信息,有新的创建和销毁会立刻打印出来kubectl get pods -o wide
//查看pod详细信息kubectl get nodes -o wide
//查看node详细信息kubectl get namespaces
//列出所有的namespacekubectl get rc,service
//查看rc和service列表kubectl get deployment
//获取指定控制器pod信息kubectl get pods -n kube-system
//查看kube-system命名空间中pod信息kubectl get pods/podName -o yaml
//查看pod的yaml信息
描述资源信息
kubectl describe node nodeName //获取详细资源清单信息(包括CPU和Memory)kubectl describe po podName //获取详细资源清单信息(包括错误信息和实时状态)kubectl logs podName -f //或者指定pod的日志信息
进入容器
kubectl exec -it podName sh //进入pod容器,但是对权限要求也较多kubectl exec -it podName -c containerName bash //通过bash获得Pod中某个容器的TTY,相当于登录容器kubectl attach podName //获取实时的logs信息
创建资源(apply)
kubectl create/apply -f yamls/sonar.yaml //根据yaml文件创建容器kubectl create/apply -f yamls/ //多个yaml文件创建容器kubectl create/apply -f my-service.yaml -f my-rc.yaml //根据yaml配置文件一次性创建service和rc
删除资源
kubectl delete -f yamls/sonar.yaml //删除指定pod kubectl delete -f yamls/ //删除多个pod kubectl delete pods podName //删除指定pod kubectl delete pod podName --force --grace-period=0 //强制删除podkubectl delete deployment ControllerName //有控制器的pod不能直接删除,需先删除其控制器kubectl delete pods,services -l name=labelName //删除所有包含某个label的Pod和servicekubectl delete pods --all //删除所有Pod
标签匹配
kubectl get pods --show-labelskubectl get pods --show-labels -l env=dev,tie=front //多个标签同时满足条件kubectl get pods --show-labels -l 'env in (dev,test)' [in,notin]
kubectl label pods podName env=test //设置标签 env=test
kubectl label pods podName env=test --overwrite //若env标签存在,强制设置标签 env=test
kubectl lable pods podName env- //删除podname中env标签
暴露服务,创建service
kubectl expose pod podName [--port=80 --target-port=8000]
kubectl expose deployment deployName [--port=80 --target-port=8000]
[自动]扩缩容
kubectl scale deployment deployName --replicas=3 //执行扩缩容Pod的操作kubectl autoscale deployment deployName --min=2 --max=10 //设置pod数量在2到10之间kubectl autoscale deployment deployName --max=5 --cpu-percent=80 //pod数量在1到5之间,目标CPU利用率为80%
在线设置镜像版本
kubectl set image deployment/nginx nginx=nginx:1.9.1 //设置nginx镜像为1.9.1版本kubectl edit deployment/nginx //编辑yaml文件修改kubectl rolling-update deployment deployName -f redis-rc.update.yaml //执行滚动升级操作#官网滚动更新图https://kubernetes.io/images/docs/kubectl_rollingupdate.svg
升级和回滚操作
kubectl rollout history deployment deployName //显示deployment的详情kubectl rollout history deployment deployName --revision=3 //显示版本3 deployment的详情kubectl rollout undo eployment/deployName //回滚到上一个版本kubectl rollout undo eployment/deployName --to-revision=3 //回滚到第3个版本kubectl rollout undo --dry-run=true eployment/deployName //回滚到上一个版本,调试但不执行
管理多集群
kubectl cluster-info //获取k8s集群信息kubectl config view //获取k8s集群管理配置信息,也就是 .kube/config 文件内容kubectl config get-contexts //查看集群名称的contextkubectl config set-context 上下文名称 --user=minikube --cluster=minikube --namespace=demo //设置上下文kubectl config set current-context minikube //切换到名称为 minikube 的集群中kubectl config use-context minikube //切换到名称为 minikube 的集群中
设置集群角色
kubectl label nodes test1 node-role.kubernetes.io/master= //设置 test1 为 master 角色kubectl label nodes 192.168.0.92 node-role.kubernetes.io/node= //设置 test2 为 node 角色kubectl taint nodes test1 node-role.kubernetes.io/master=true:NoSchedule //设置 master 一般情况下不接受负载kubectl taint nodes test1 node-role.kubernetes.io/master- //master运行pod
kubectl taint nodes test1 node-role.kubernetes.io/master=:NoSchedule //master不运行pod
猜你喜欢
您可能感兴趣的文章:
- nodejs配置本地转发
- 获取当前时间年月日时分秒 格式:20001212120000
- 常用属性
- vue.js中使用Export2Excel导出Excel表格
- 移动端css 初始化
- 常用属性
- 滚动banner
- lua lua_package_path attempt to call global 'lua_package_path'
- 1000行MySQL命令,很实用!
- js 获取当前url地址
- safasf
- MySQL ALTER TABLE 添加/修改/删除字段
- php获取ip地址
- ajax The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.
- jQuery jsonp跨域请求
- nginx lua access_by_lua_file设置变量无变化
- js中的值类型和引用类型的区别
- shell常用脚本变量
- tcpdump 抓包命令