k8s常用命令

kubectl get nodes
kubectl get nodes -o wide
kubectl get pods -o wide
kubectl get pod,svc
kubectl get nodes 
kubectl get node
kubectl get no
kubectl get nodes k8s-node01
kubectl --help
kubectl get --help
kubectl help get
kubectl get pod,svc
kubectl get nodes
kubectl get cs
systemctl restart kubelet.service
kubectl help create
kubectl api-versions 
kubectl api-resources 
kubectl create deployment web --image=nginx -o yaml --dry-run
kubectl create deployment web --image=nginx -o yaml --dry-run > my1.yml  # 生成yaml文件,不运行应用
kubectl get deployments.apps
kubectl get deployments.apps nginx -o yaml  > my2.yml # 对已存在的deployment,使用命令来生成yaml文件
kubectl describe nodes k8s-master | grep taint # 查看污点属性
kubectl scale deployment nginx --replicas=5 # 弹性伸缩为5副本
kubectl delete deployments.apps nginx  # 删除deployment
kubectl taint node k8s-node01 env_role=prod:NoSchedule # 给节点加了污点的属性:NoSchedule
kubectl describe nodes k8s-node01 | grep -i taint # 查看节点的污点属性
kubectl create deployment nginx --image=nginx # 快速发放一个deployment类型的应用
kubectl taint node k8s-node01 env_role=prod:NoSchedule- # 清除节点的污点属性
source /usr/share/bash-completion/bash_completion # 设置kubectl的自动补全
source <(kubectl completion bash) # 设置kubectl的自动补全
kubectl expose deployment nginx --port=80 --type=NodePort # 通过node的端口来暴露pod应用的端口
kubectl expose deployment nginx --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml > web1.yml # 生成暴露pod端口的yaml文件
kubectl apply -f web1.yml # 暴露pod的端口
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml # 生成flannel网络容器,使用k8s集群的节点能够通过pod网络互通
kubectl get pods -n kube-system -o wide # 查看指定命名空间下的容器
kubectl set image deployment nginx nginx=nginx:1.15 # 升级版本
kubectl rollout status deployment nginx # 查看升级是否成功
kubectl rollout history deployment nginx # 查看升级的历史
kubectl rollout undo deployment nginx # 回滚到上一个版本
kubectl rollout undo deployment nginx --to-revision=3 # 回滚到指定的版本
kubectl expose deployment nginx --port=80 --target-port=80 --dry-run  -o yaml > service.yml # 生成clusterIP(集群内部进行访问)的service类型的yaml文件
kubectl create service clusterip nginx --clusterip="None" --dry-run -o yaml --tcp=80  > service2.yml # 生成无头service的yaml文件
kubectl exec -it nginx-ds-8j2ml bash # 进入pod中
kubectl create job pi --image=perl --dry-run -o yaml > job.yml # 生成job的yml文件
kubectl logs pi-qc8d5 # 查看Pod生成过程中产生的日志
kubectl delete -f job.yml # 删除对应的job
kubectl create cronjob hello --image=busybox --restart=OnFailure --dry-run -o yaml --schedule="*/1 * * * *" -- /bin/sh -c "date; echo Hello from the kubernets cluster" > cronjob.yml #生成cronjob的yaml文件
kubectl delete cronjobs.batch hello # 删除生成的cronjob
kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=123456 --dry-run -o yaml > secret.yml # 创建secret的yaml文件方法1
echo -n admin > ./username
echo -n 123456 > ./password
kubectl create secret generic my-secret --from-file=./username --from-file=./password # 创建secret的yaml文件方法2
cat > env.txt <<EOF
username=admin
password=123456
EOF
kubectl create secret  generic my-secret --from-env-file=env2.txt --dry-run -o yaml > secret3.yml # 创建secret的yaml文件方法3
kubectl edit secrets my-secret # 查看secret的值
cat > logging.conf << EOF
class: loggin.handlers.RotatingFileHandler
formatter: precise
level: INFO
filename: %hostname-%timestamp.log
EOF
kubectl create configmap my-configmap --from-file=logging.conf --dry-run -o yaml > configmap.yml # 创建configmap的yaml文件的方法
cat > env-configmap.txt << EOF
config1=admin
config2=123456
EOF
kubectl create configmap my-configmap1 --from-env-file=env-configmap.txt --dry-run -o yaml > env-configmap.yml # 创建env使用形式的configmap的yaml的方法
helm repo add stable http://mirror.azure.cn/kubernetes/charts # 添加微软仓库
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts # 添加阿里云的仓库
helm repo list # 查看heml所管理的仓库
helm repo update # 更新仓库
helm repo remove aliyun # 删除阿里云的仓库
helm install ui stable/weave-scope # helm安装weave-scope
helm list # 查看已安装的项目
helm status ui # 查看已安装的项目的状态
kubectl edit svc ui-weave-scope # 可以直接修改已运行pods的配置yaml文件
helm install nginx mychart/ # 通过自定义的chart来安装应用
helm upgrade nginx mychart/ # 通过helm来更新安装的应用版本
kubectl patch pv my-pv -p '{"metadata":{"finalizers":null}}' # 直接删除k8s中的pv记录,强制删除
kubectl taint node k8s-master node-role.kubernetes.io/master- # 将k8s-master节点作为node来使用
kubectl taint node k8s-master node-role.kubernetes.io/master="":NoSchedule # 将k8s-master节点恢复为master-only的状态
kubectl label node k8s-node01 disktype=ssd # 给k8s-node节点打标签
kubectl get node --show-labels # 查看k8s-node节点的标签
kubectl label node k8s-node1 disktype- # 删除节点的label
kubectl get daemonsets.apps node-exporter -n kube-system -o yaml # 获取已运行的daemonsets的yaml文件
posted @ 2020-12-09 17:16  Richardo-M-Lu  阅读(204)  评论(0编辑  收藏  举报