在配置GPIO(General Purpose Input Output)管脚的时候,常会见到两种模式:开漏(open-drain,漏极开路)和推挽(push-pull)。...二、Open-Drain开漏输出 1、原理 开漏电路是指以MOSFET的漏极为输出的电路, 在内部输出和地之间有个N沟道的MOSFET(Q1),这些器件可以用于电平转换的应用。...Open-drain只能够漏电流(sink current),如果想要集电流(source current),则需要加一个上拉电阻。...三、open-drain和push-pull的总结 对于GPIO的模式的设置,在不考虑是否需要额外的上拉电阻的情况下,是设置为open-drain还是push-pull?...如果你想要功耗低,且同时具有“线与”的功能,那么就用open-drain的模式。
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
kubectl-safe-drain 项目 GitHub: https://github.com/majian159/kubectl-safe-drain 一个 kubectl 插件, 用于更为安全的排空节点...-f sdrain.tgz \ && mv kubectl-safe-drain /usr/local/bin/kubectl-safe_drain macOS curl -sLo sdrain.tgz...https://github.com/majian159/kubectl-safe-drain/releases/download/v0.0.1-preview1/kubectl-safe-drain.../usr/local/bin/kubectl-safe_drain Windows https://github.com/majian159/kubectl-safe-drain/releases/download...drain 命令来确保节点被驱逐 kubectl drain NODE TODO 考虑节点亲和力和节点选择器的情况 输出更为友好的提示信息
禁止调度命令"kubectl drain node_name --force --ignore-daemonsets --delete-local-data" 恢复调度命令"kubectl uncordon...需要注意: 对节点执行维护操作之前(例如:内核升级,硬件维护等),您可以使用 kubectl drain 安全驱逐节点上面所有的 pod。...kubectl drain 返回成功表明所有的 pod (除了排除的那些)已经被安全驱逐(遵循期望优雅的中止期,并且没有违反任何应用程序级别的中断预算)。...即--ignore-daemonsets往往需要指定的,这是因为deamonset会忽略unschedulable标签(使用kubectl drain时会自动给节点打上不可调度标签),因此deamonset...drain禁止调度的操作步骤: 确定要排空的节点的名称 # kubectl get nodes 查看pod # kubectl get po 命令node节点开始释放所有pod,并且不接收新的pod
因为题 中没有要求,如果题 中有要求,就不能随便起了 03 — 设置节点不可 考题概述: 设置 ek8s-node-1 节点为不可 、重新调度该节点上的所有 pod 考题解析: cordon节点,drain...节点,需要忽略 daemonsets 并清除 local-data,否则可能 法驱逐 pod 参考 法: 切换 context kubectl cordon ek8s-node-1 kubectl drain...delete-emptydir-data -- force 完成后一定要通过 get nodes加以确认 04 — 升级 kubeadm 考题概述: 升级 master 节点为1.22.2,升级前确保drain...master 节点,不要升级worker node 、容器 manager、 etcd、 CNI插件、DNS 等内容; 考题解析: 首先 cordon、drain master节点,其次升级 kubeadm...cordon mk8s-master-0 kubectl drain mk8s-master-0 --ignore-daemonsets --force apt-mark unhold kubeadm
通常情况下,我们简单地使用 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 drain命令已经支持了PodDisruptionBudget控制器,在进行kubectl drain操作时会根据PodDisruptionBudget控制器判断应用POD集群数量,进而保证在业务不中断或业务...在进行kubectl drain或者Pod主动逃离的时候,Kubernetes会通过以下几种情况来进行判断: minAvailable设置成了数值5:应用POD集群中最少要有5个健康可用的POD,那么就可以进行操作...在极端的情况下,比如将maxUnavailable设置成0,或者设置成100%,那么就表示不能进行kubectl drain操作。...同理将minAvailable设置成100%,或者设置成应用POD集群最大副本数,也表示不能进行kubectl drain操作。...# kubectl apply -f pdb-demo.yaml (4)、查看状态 # kubectl get pdb NAME MIN AVAILABLE MAX UNAVAILABLE
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 drain --ignore-daemonsets。去腾空节点,更新完成后kubectl uncordon 将节点设置为可调度。...升级kubeadm kubelet kubectl yum install -y kubeadm-1.21.0 kubelet-1.21.0 kubectl-1.21.0 --disableexcludes...看自己需要是否需要腾空节点 kubectl drain --ignore-daemonsets kubectl uncordon 4 ....验证升级结果 kubectl get node [image.png] kubectl get pods -n kube-system [image.png] 后记: 不知道为什么镜像仓库的设计是否是只设计了一级目录...再次熟悉下kubeadm-config 的 configmap ctr 命令的熟练使用 kubectl drain kubectl uncordon的命令使用 kubeadm upgrade node
是否有过因为使用 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
例如,要获取命名空间,可以使用 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
kubecolor 为 kubectl 命令输出着色,不执行任何其他操作。kubecolor 在内部调用 kubectl command 并尝试对输出进行着色。...Mac 安装 $ brew install dty1er/tap/kubecolor Kubecolor 用法 如果习惯使用 kubectl,可以把 kubecolor 命令做一个 kubectl 别名...kubecolor 使用和 kubectl 命令方法一样。 alias kubectl="kubecolor" 当 kubecolor 输出 tty 不是标准输出时,它会自动禁用着色。
[root@master ~]# kubectl get nodes 查看集群节点 NAME STATUS AGE node1 Ready 25m node2 Ready... 19m [root@master ~]# kubectl version 查看版本 Client Version: version.Info{Major:"1", Minor:"5", GitVersion...kubectl create -f MySQL-deployment.yaml deployment "mysql" created [root@master ~]# kubectl get deployment...[root@master ~]# kubectl exec -it mysql-2261771434-r8td1 bash bash-4.2# cp: [root@master ~]# kubectl...If 'tar' is not present, 'kubectl cp' will fail.
由于笔者所维护的集群规模较大,经常需要使用 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
创建调试会话要创建一个调试会话,您可以使用以下命令:kubectl debug -it --image=其中,“”是要调试的Pod的名称...配置自动化要配置自动化,您可以使用以下命令:kubectl apply -f 其中,“”是包含Kubernetes对象的YAML文件的名称。...例如,如果您要使用Kubernetes对象配置自动化流程,可以使用以下命令:kubectl apply -f automation.yaml查看资源对象状态要查看资源对象的状态,您可以使用以下命令:kubectl...例如,要查看名为“my-pod”的Pod的状态,您可以使用以下命令:kubectl describe pod my-pod此命令将显示有关Pod的详细信息,包括其IP地址、容器、卷和事件等。...管理命名空间要管理命名空间,您可以使用以下命令:kubectl create namespace kubectl delete namespace <namespace-name
share/bash-completion/bash_completion # source /usr/share/bash-completion/bash_completion # source <(kubectl...没问题后,我们对 /root/.bashrc 加2行代码 ,方便以后每次登录自动生效: source /usr/share/bash-completion/bash_completion source <(kubectl...bash) 在mac上 $ brew install bash-completion $ source $(brew --prefix)/etc/bash_completion $ source <(kubectl
在清华大学出版社出版的>一书上看到了总结的Kubectl命令,觉得很不错,比较全,包括有命令的含义以及常见的资源对象,所以分享一下。...常用子命令我们可以看到有kubectl run运行一个镜像,kubectl get列出资源,kubectl expose暴露资源服务,kubectl exec在pod容器内执行命令等等。
查看资源对象的详细信息要查看资源对象的详细信息,您可以使用以下命令:kubectl describe 其中,“”是资源对象的名称,...例如,要查看名为“my-pod”的Pod的详细信息,您可以使用以下命令:kubectl describe pod my-pod创建资源对象要创建资源对象,您可以使用以下命令:kubectl create...例如,要删除名为“my-pod”的Pod,您可以使用以下命令:kubectl delete pod my-pod调试资源对象要调试资源对象,您可以使用以下命令:kubectl logs ...例如,要在名为“my-pod”的Pod中执行“ls”命令,您可以使用以下命令:kubectl exec my-pod -- ls
领取专属 10元无门槛券
手把手带您无忧上云