k8s常用操作类命令
1.kubectl cp fileName podName:/fileName //复制文件到pod的指定目录,也可从容器中复制文件到外部
2.kubectl explain po //查看帮助信息和help类似,尤其是资源清单的结构字段信息
//查看帮助信息,资源下的cpu和memory等,每个配置项都有详细的网页手册地址
创建、重建、删除、加载资源
kubectl create -f 文件名.yaml #创建资源
kubectl replace -f 文件名 [–force] #重建资源
删除资源:
kubectl delete -f 文件名
kubectl delete 资源名
kubectl delete pods --all
加载配置文件:
kubectl apply –f 文件名.yaml
kubectl scale 动态伸缩:kubectl scale rc nginx --replicas=5
kubectl scale --replicas=2 -f redis-slave-deployment.yaml
kubectl exec -it redis-master-xxxx /bin/bash -n beta #指定命名空间
kubectl label :添加label值
kubectl get node --show-labels #查看节点label
kubectl label nodes node1 zone=north #nodes添加标签
kubectl label pod redis-master-xxx role=master #增加label值 [key]=[value]
kubectl label pod redis-master-xxx role- #删除label值
kubectl label pod redis-master-xxx role=backend --overwrite #修改label值
kubectl rolling-update redis-master -f redis-master-controller-v2.yaml #配置文件滚动升级
kubectl rolling-update redis-master --image=redis-master:2.0 #命令升级
kubectl rolling-update redis-master --image=redis-master:1.0 --rollback #pod版本回滚
kubectl exec -it podName -c containerName bash //通过bash获得Pod中某个容器的TTY,相当于登录容器
kubectl attach podName //获取实时的logs信息
暴露服务,也就是创建service
kubectl expose pod podName [--port=80 --target-port=8000]
kubectl expose deployment deployName [--port=80 --target-port=8000]
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 //执行滚动升级操作
设置集群角色
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
etcdctl 常用操作
etcdctl cluster-health #检查网络集群健康状态
etcdctl --endpoints=https://192.168.71.221:2379 cluster-health #带有安全认证检查网络集群健康状态
etcdctl member list
etcdctl set /k8s/network/config ‘{ “Network”: “10.1.0.0/16” }’
etcdctl get /k8s/network/config
kubectl label nodes k8s-node01 zone=north #为指定节点添加标签
kubectl label nodes k8s-node01 zone- #为指定节点删除标签
kubectl label pod podName -n nsName role-name=test #为指定pod添加标签
kubectl label pod podName -n nsName role-name=dev --overwrite #修改lable标签值
kubectl label pod podName -n nsName role-name- #删除lable标签
kubectl cordon node //设置禁止调度
kubectl uncordon node //取消禁止调度
驱逐已经运行的业务容器
kubectl drain --ignore-daemonsets k8s-node-1
如果想删除node 节点,则进行这个步骤
kubectl delete node k8s-node-1