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的大小。
作者: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
cat <<EOF | 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 <<EOF | kubectl apply
- 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
通常情况下,我们简单地使用 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 以访问我们集群的节点。
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
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
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
kubecolor 为 kubectl 命令输出着色,不执行任何其他操作。kubecolor 在内部调用 kubectl command 并尝试对输出进行着色。...Mac 安装 $ brew install dty1er/tap/kubecolor Kubecolor 用法 如果习惯使用 kubectl,可以把 kubecolor 命令做一个 kubectl 别名...kubecolor 使用和 kubectl 命令方法一样。 alias kubectl="kubecolor" 当 kubecolor 输出 tty 不是标准输出时,它会自动禁用着色。
由于笔者所维护的集群规模较大,经常需要使用 kubectl 来排查一些问题,但是 kubectl 功能有限,有些操作还是需要写一个脚本对 kubectl 做一些封装才能达到目的。...的插件机制做了一些改进,对 kubectl 的扩展也比较容易,所以下文会带你了解一下 kubectl 的扩展功能。...一、编写 kubectl 插件 kubectl 命令从 v1.8.0 版本开始支持插件机制,之后的版本中我们都可以对 kubectl 命令进行扩展,kubernetes 在 v1.12 以后插件可以直接是以...如 kubernetes 官方文档中描述,只要将二进制文件放在系统 PATH 下,kubectl 即可识别,二进制文件类似 kubectl-foo-bar,并且在使用时 kubectl 会匹配最长的二进制文件...参考: kubectl 插件命明规范 https://kubernetes.io/docs/tasks/extend-kubectl/kubectl-plugins/ https://github.com
领取专属 10元无门槛券
手把手带您无忧上云