作者:大鱼小鱼比目鱼 | 来源:互联网 | 2023-06-20 12:12
查看客户端和服务器侧的版本信息kubectlversion列出当前版本的kubernetes的服务器端所支持的api版本信息kubectlapi-versions查看版本源kub
查看客户端和服务器侧的版本信息
kubectl version
列出当前版本的kubernetes的服务器端所支持的api版本信息
kubectl api-versions
查看版本源
kubectl api-resources
查看帮助,语法格式
kubectl explain rc
创建
kubectl run nginx --replicas=3 --labels="app=example" --image=nginx:1.10 --port=80
在创建的时候指定运行的命令
kubectl run busybox --image=busybox --command -- ping baidu.com
在pod中运行命令
kubectl exec nginx-6f8cf9fbc4-lvsqj ls
进入pod
kubectl exec nginx-6f8cf9fbc4-lvsqj -it bash
进入pod的某个容器
kubectl exec pod-demo -it --container busybox -- bash
kubectl exec pod-demo -it -c myapp -- bash
创建命名空间
kubectl create namespace mytest
查看命名空间
kubectl get namespace
查看pod标签
kubectl get pods --show-labels
查看指定标签的pod
kubectl get pods -l run=nginx
查看deploy
kubectl get deploy
查看pod详细信息
kubectl get pods -o wide
查看所有
kubectl get all
查看一个服务详细信息
kubectl describe service nginx-service
kubectl describe node nodehost
kubectl describe deployment myapp
查看endpoint
kubectl get endpoints
升级nginx至1.9.1
kubectl set image deploy nginx nginx=nginx:1.9.1
暂停更新
kubectl rollout pause deployment myapp-deploy
继续更新
kubectl rollout resume deployment myapp-deploy
监控查看升级状态
kubectl rollout status deployment nginx
查看某个历史版本
kubectl rollout history deployment nginx --revision=3
回滚到上一版本
kubectl rollout undo deployment/nginx-deployment
--to-revision参数指定回滚到某个历史版本
kubectl rollout undo deployment/nginx-deployment --to-revision=2
删除deployment
kubectl delete deployment nginx
查看在集群信息
kubectl cluster-info
超详细集群信息
kubectl cluster-info dump
查看所有名称空间的serivceaccount
kubectl get sa --all-namespace
查看默认的名称空间使用的是哪个secret
kubectl get sa default -o yaml
发布一个服务
kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service
–port:宿主机暴露出去的端口
–type=NodePort:使用结点+端口方式访问服务
–target-port:容器的端口
–name:创建service指定的名称
deployment扩容缩容
kubectl scale deployment nginx --replicas=3
将get信息到出为yaml格式
kubectl get deploy kube-dns -n kube-system -o yaml > kube-dns.yaml
设置节点为维护模式(即节点不可被调度,但不影响已有pod的运行)
kubectl cordon k8s-slave
kubectl cordon 192.168.1.123
关闭维护模式
kubectl uncordon k8s-slave
查看日志
mysql-478535978-1dnm2
从容器中复制文件到宿主机
kubectl cp mysql-478535978-1dnm2:/tmp/message.log message.log
编辑
kubectl edit service nginx
替换
kubectl replace -f nginx_forreplace.yaml
删除node
kubectl drain node03 --delete-local-data --force --ignore-daemonsets
kubectl delete node node01
kubeadm reset
使用策略合并补丁并修补资源
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' # 部分更新节点
更新容器镜像; spec.containers[*].name 是必须的,因为这是合并的关键字
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'
使用具有位置数组的 json 补丁更新容器镜像
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'
使用具有位置数组的 json 补丁禁用 deployment 的 livenessProbe
kubectl patch deployment valid-deployment --type json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]'
使用文件或者标准输入来更改配置信息。
kubectl apply -f nginx/nginx.yaml
自动在某个范围内扩容,跟scale不同的是前者还是需要手动执行,而autoscale则会根据负载进行调解,通过最小值和最大值的指定进行设定
kubectl autoscale deployment nginx --min=2 --max=5 --cpu-percent=80
执行drain命令,发现这条命令做了两件事情:
1. 设定此node不可以使用(cordon)
2. evict了其上的两个pod
[root@ku8-1 tmp]# kubectl drain 192.168.32.134
node "192.168.32.134" cordoned
pod "nginx-2476590065-d6h8f" evicted
pod "nginx-2476590065-9lfzh" evicted
node "192.168.32.134" drained
[root@ku8-1 tmp]#
结果确认
evict的意思有驱逐和回收的意思,让我们来看一下evcit这个动作的结果到底是什么。
结果是134上面已经不再有pod,而在132和133上新生成了两个pod,用以替代在134上被退场的pod,而这个替代的动作应该是replicas的机制保证的。所以drain的结果就是退场pod和设定node不可用(排水),这样的状态则可以进行维护了,执行完后重新uncordon即可。
创建docker私有仓库的认证secret
kubectl create secret docker-registry myregistrykey --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL