weight: 2 preference: matchExpressions: - key: bb operator: Gt values: - "3 image.png 调度:警戒线cordon...如果把某个节点设置了cordon,则这个节点会被设置为不可调度,再创建新的pod的时候是不会调度到此节点上的 image.png image.png image.png...通过kubectl uncordon vms63取消cordon后恢复正常 调度:节点的drain 如果一个节点被设置为drain,则此节点不再被调度pod, 且此节点上已经运行的pod会被驱逐(...evicted)到其他节点,用于节点的维护 kubectl drain vms63 --ignore-daemonsets kubectl uncordon vms63 此操作不在这里单独演示 调度...:"Equal" value:"valuexx" effect:"NoSchedule" image.png 跟之前的cordon
cicd-clusterrole随便起的,因为题 中没有要求,如果题 中有要求,就不能随便起了 03 — 设置节点不可 考题概述: 设置 ek8s-node-1 节点为不可 、重新调度该节点上的所有 pod 考题解析: cordon...节点,drain 节点,需要忽略 daemonsets 并清除 local-data,否则可能 法驱逐 pod 参考 法: 切换 context kubectl cordon ek8s-node-1 kubectl...升级 master 节点为1.22.2,升级前确保drain master 节点,不要升级worker node 、容器 manager、 etcd、 CNI插件、DNS 等内容; 考题解析: 首先 cordon...ssh mk8s-master-0 kubectl cordon mk8s-master-0 kubectl drain mk8s-master-0 --ignore-daemonsets --force...master节点状态以及版本 kubectl get node
cordon、drain和delete三个命令都会使node停止被调度,后期创建的pod不会继续被调度到该节点上,但操作的暴力程度却不一样。...一、cordon 停止调度(不可调度,临时从K8S集群隔离) 影响最小,只会将node标识为SchedulingDisabled不可调度状态。 之后K8S再创建的pod资源,不会被调度到该节点。...禁止调度命令"kubectl cordon node_name"。 恢复调度命令"kubectl uncordon node_name"。...禁止调度命令"kubectl drain node_name --force --ignore-daemonsets --delete-local-data" 恢复调度命令"kubectl uncordon...正确的操作: cordon临时从K8S集群隔离出来,标识为SchedulingDisabled不可调度状态。 drain排干该节点上的pod资源到其他node节点上。
kubectl apply 通过文件名或控制台输入,对资源进行配置。 摘要 通过文件名或控制台输入,对资源进行配置。 接受JSON和YAML格式的描述文件。...kubectl apply -f FILENAME 示例 # 将pod.json中的配置应用到pod $ kubectl apply -f ..../pod.json # 将控制台输入的JSON配置应用到Pod $ cat pod.json | kubectl apply -f - 选项 -f, --filename=[]: 包含配置信息的文件名...--schema-cache-dir="/tmp/kubectl.schema": 如果不为空,将API schema缓存为指定文件,默认缓存到“/tmp/kubectl.schema”。
kubectl 在管理工具界面使用kubectl语法运行如下命令: kubectl [command] [TYPE] [NAME] [flags] 下表包括了所有kubectl操作简短描述和通用语法:...exec kubectl exec POD 对pod中的容器执行命令。 explain kubectl explain 获取各种资源的文档。...get kubectl get 列出一个或多个资源。 label kubectl label 添加或更新一个或多个资源的flags。...logs kubectl logs POD 在pod中打印容器的日志。 proxy kubectl proxy 在Kubernetes API服务器运行代理。...run kubectl run 在集群上运行指定的镜像。 scale kubectl scale 更新指定replication controller的大小。
将节点设置为不可调度,阻止新的Pods调度到准备维护的节点上(k8s-node-1是示例节点名称,可通过kubectl get nodes进行查看) kubectl cordon k8s-node-1...节点排空,驱逐节点上的Pods kubectl drain k8s-node-1 --ignore-daemonsets 参数说明: --ignore-daemonsets: 不驱逐节点上的deamonset...PDB策略查看: kubectl get pdb -n prod 有PDB的加持,会让多节点维护得更加安全和放心。...cordon $NODE; then echo "[$(date)] cordon node $NODE successfully" | tee -a $LOG_FILE else...echo "[$(date)] Error cordon node $NODE" | tee -a $LOG_FILE return 1 fi # 等待 3 秒以确保配置生效 sleep
cat kubectl apply -f - apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:...cordon node2 kubectl drain node2 --ignore-daemonsets kubectl uncordon node2 kubectl cordon kmaster...kubectl drain kmaster --ignore--daemonsets apt-mark unhold kubeadm kubelet kubectl apt-get update &&...kubeadm upgrade plan kubeadm upgrade apply v1.20.1 kubectl uncordon kmaster ETCDCTL_API=3 etcdctl -...get no --no-headers kubectl describe nodes | grep -i taint | grep NoSchedule cat kubectl apply
作者:imuxin 灵雀云后端工程师 今天给大家推荐一个插件:kubectl-watch kubectl-watch:一个可以监听 kubernetes 资源的变更信息的 kubectl 插件。...拷贝 script 目录下的 kubectl-watch 脚本到环境的 $PATH 其中的一个目录下,比如 /usr/local/bin。...cp script/kubectl-watch /usr/local/bin/ chmod +x /usr/local/bin/kubectl-watch 方式二:从 release assets[6...cargo install kubectl-watch --locked Cmd 帮助 USAGE: kubectl-watch [OPTIONS] [ARGS] ARGS: <RESOURCE...资源 kubectl-watch deployment -n {namespace} {name} 追加 --skip-delta 选项,仅监听变动资源,同 kubectl get -w kubectl-watch
针对这个问题,Kubernetes给我们提供了两个优雅的方案:隔离(Cordon)和驱逐(Eviction)。...在 Kubernetes(k8s)中,隔离(Cordon)和驱逐(Eviction)是管理节点和 Pod 的两个重要操作。...隔离(Cordon) 隔离节点是指将该节点标记为不可调度(NoSchedule),这意味着新的 Pod 不会被调度到该节点上,但是节点上正在运行的 Pod 仍然可以正常运行。...隔离节点的步骤如下: #获取所有节点 kubectl get nodes #对需要隔离的节点进行隔离操作 kubectl cordon node01 实际上这个隔离就是给这个主机打上一个污点和添加一个新字段...kubectl uncordon node02 这个时候,我们的Pod就会正常调度,我们的维护就算完成,但是根据经验,我们一般会对某个Pod进行扩容操作,确保他真的能调度到这个新节点上。
- kubectl get pods -o wide - kubectl get pod xxx -o yaml #获取yaml配置文件 - kubectl get nodes -o wide...-f xxx.yaml #创建资源 - kubectl delete deploy mysql-deploy #删除资源 - kubectl get svc -o wide - kubectl...get ep SVC_NAME #查看svc对应绑定的pod - kubectl get rs - kubectl get deploy/DEPLOY-NAME - kubectl get...#查看该secret的令牌 - kubectl scale --replicas=3 deployment/xxxx #横向扩展deploy的rs数量 - kubectl cordon...这一步会进行两个步骤:1.将node设为cordon状态2.驱逐node上的pod - kubectl drain node2 --delete-local-data --force --ignore-daemonsets
describe po $ kubectl get po $ kubectl get po --show-labels $ kubectl get po -l app=nginx $ kubectl...get ns $ kubectl get ns - o yaml $ kubectl describe ns Deployments $ kubectl get deploy $ kubectl describe...deploy $ kubectl get deploy - o wide $ kubectl get deploy - o yaml Services $ kubectl get svc $ kubectl...taint_name] Labels $ kubectl label [node_name] disktype=ssd $ kubectl label [pod_name] env=prod Cordon.../Uncordon $ kubectl cordon [node_name] $ kunectl uncordon [node_name] Drain $ kubectl drain [node_name
依次将所有TKE节点执行步骤1至4,完成所有TKE节点的版本升级; 核心指令/界面操作 查看节点: kubectl get nodes 设置节点为不可调度 kubectl cordon 设置节点为可调度 kubectl uncordon 驱逐节点下的非daemonset类型的pod kubectl drain --force --ignore-daemonsets...查看所有命名空间 kubectl get ns 查看命名空间下的pod kubectl get pod -o wide -n 强制删除不能正常结束的pod kubectl delete
create -f - # 不过一般可能更常用下面的命令来创建资源 kubectl apply -f /path/to/deployment.yaml # 通过kubectl命令直接创建 kubectl...run nginx_app --image=nginx:1.9.1 --replicas=3 kubectl还提供了一些更新资源的命令,比如kubectl edit、kubectl patch和kubectl...# kubectl edit:相当于先用get去获取资源,然后进行更新,最后对更新后的资源进行apply kubectl edit deployment/nginx_app # kubectl patch...4.1 cordon & uncordon命令 设置是否能够将pod调度到该节点上。...# 不可调度 kubectl cordon node-0 # 当某个节点需要维护时,可以驱逐该节点上的所有pods(会删除节点上的pod,并且自动通过上面命令设置 # 该节点不可调度,然后在其他可用节点重新启动
kubectl 常用命令 获取资源信息 获取所有 Pod:kubectl get pods 获取所有 Service:kubectl get services 获取特定 Namespace 中的...> --replicas=3 查看节点信息 获取节点列表:kubectl get nodes 管理配置文件 列出当前配置信息:kubectl config view 切换到另一个上下文:kubectl...驱逐节点上的所有 Pod:kubectl drain 取消维护模式:kubectl uncordon 滚动更新历史和回滚 查看滚动更新历史:kubectl...Pod:kubectl drain 取消维护模式:kubectl uncordon 在容器内交互 附加到正在运行的容器:kubectl attach -...查看节点的 CPU 和内存使用情况:kubectl top nodes 查看 Pod 的 CPU 和内存使用情况:kubectl top pods 快速创建 Pod 快速创建一个 Pod:kubectl
通常情况下,我们简单地使用 kubectl logs 或者 kubectl describe pod 便足以找到问题所在,但有时候,一些问题会特别难查。...为了模拟应用崩溃的场景,使用 kubectl run 命令创建一个立即退出的容器: kubectl run --image=busybox myapp -- false 使用 kubectl describe...此时可以使用 kubectl debug 命令创建该 Pod 的一个副本, 在该副本中将命令改变为交互式 shell: # 这里 --container 不能省略 ❯ kubectl debug myapp...下面的例子,用 kubectl run 创建一个 Pod: kubectl run myapp --image=busybox --restart=Never -- sleep 1d 现在可以使用 kubectl...作为参数显式运行 kubectl debug 以访问我们集群的节点。
kubectl使用指定的配置文件 kubectl --kubeconfig /path/to/kubeconfig get no 进入pod中容器 kubectl exec -it -n ns pod-name...设置KUBECONFIG export KUBECONFIG=path/to/kubeconfig 删除所有po kubectl delete po --all 查询所有ns下pod kubectl get...pods --all-namespaces 修改对象 kubectl edit deploy nginx-test 给节点增加/删除标签 kubectl label nodes node-name key...的http请求流程 kubectl get po -v 10 端口转发 kubectl port-forward grafana-test-6877dd694c-bp862 3001:3001 kubectl...key=value:NoSchedule kubectl taint nodes node1 key:NoSchedule- 标记节点不调度 kubectl cordon $NODENAME 创建deployment
例如,要获取命名空间,可以使用 kubectl get ns 命令: $ kubectl get ns NAME STATUS AGE charts...$ KUBE_EDITOR="nano" kubectl edit cronjob/my-existing-cron Kubectl delete 学会了以上命令后,下面我们将进行删除操作。...# 二、使用kubectl对kubernetes进行故障排除 Kubectl describe describe 命令可以查看资源的详细信息。...:/# Kubectl cp Kubectl cp 命令与 Linux cp 命令类似,用于容器之间复制文件和目录。...# kubectl客户端快捷使用 ##kubectl curl -L https://dl.k8s.io/release/v1.24.2/bin/linux/amd64/kubectl -o /usr
是否有过因为使用 kubectl 经常需要重复输入命名空间而苦恼?是否觉得应该要有个记住命名空间的功能,自动记住上次使用的命名空间,不需要每次都输入?...$nsarg $@" echo "$cmd" $cmd return done cmd="kubectl $@" echo "$...就可以将 k 命令注册到当前终端,dash snippets 配置如图所示: image.png 将 k 当作 kubectl 来用,只是不需要输入命名空间,它会调用 kubectl 并自动加上上次使用的非默认的命名空间...,如果想切换命名空间,再常规的使用一次 kubectl 就行,下面是示范: image.png 哈哈,是否感觉可以少输入很多字符,提高 kubectl 使用效率了?...这是目前我探索解决 kubectl 重复输入命名空间的最好方案,一开始是受 fuck命令 的启发,想用 go 语言开发个 k 命令,但是发现两个缺点: 需要安装二进制才可以使用(对于需要在多个地方用kubectl
5 scale 重新设定Deployment/ReplicaSet/RC/Job的size 6 autoscale Deployment/ReplicaSet/RC的自动扩展设定 7 cordon 设定...cordon 与 uncordon 在实际维护的时候会出现某个node坏掉,或者做一些处理,暂时不能让生成的pod在此node上运行,需要通知kubernetes让其不要创建过来,这条命令就是cordon...bt3bc 1/1 Running 0 12s 172.200.59.2 192.168.32.134 [root@ku8-1 tmp]# 执行cordon...[root@ku8-1 tmp]# kubectl cordon 192.168.32.134 node "192.168.32.134" cordoned [root@ku8-1 tmp]# kubectl...设定此node不可以使用(cordon) 2. evict了其上的两个pod [root@ku8-1 tmp]# kubectl drain 192.168.32.134 node "192.168.32.134
领取专属 10元无门槛券
手把手带您无忧上云