kubectl 命令行工具介绍与安装配置
1. kubectl 概要
kubectl 控制 Kubernetes 集群管理器,使用 Kubernetes 命令行工具 kubectl 在 Kubernetes 上部署和管理应用程序。
kubectl 是 Kubernetes 集群管理器的命令行工具,用于部署和管理应用。安装需添加 YUM 软件源并执行 yum install 命令。配置涉及 kubeconfig 文件,包含集群、用户和上下文信息,支持证书认证或 Token 认证。为提升效率可配置命令自动补全及别名 k。常用命令涵盖资源创建、查看、编辑、删除、部署、扩缩容、节点管理及故障排查等类别,如 create、get、describe、rollout、scale 等。掌握这些基础操作有助于高效管理 K8s 集群环境。
kubectl 控制 Kubernetes 集群管理器,使用 Kubernetes 命令行工具 kubectl 在 Kubernetes 上部署和管理应用程序。
使用 kubectl,您可以检查群集资源;创建、删除和更新组件;查看新集群;并部署示例应用程序。
添加软件源信息:
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
安装 kubectl:
yum install kubectl -y
在开启了 TLS 的集群中,当与集群交互的时候少不了的是身份认证,使用 kubeconfig(即证书)和 token 两种认证方式是最简单也最通用的认证方式。 kubectl 只是个 go 编写的可执行程序,只要为 kubectl 配置合适的 kubeconfig,就可以在集群中的任意节点使用。 kubectl 默认会从 $HOME/.kube 目录下查找文件名为 config 的文件,也可以通过设置环境变量 KUBECONFIG 或者通过设置 --kubeconfig 去指定其它 kubeconfig 文件。 kubeconfig 就是为访问集群所作的配置。
export KUBE_APISERVER=https://192.168.56.5:6443
kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/ssl/ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER}
kubectl config set-credentials admin \
--client-certificate=/etc/kubernetes/ssl/admin.pem \
--embed-certs=true \
--client-key=/etc/kubernetes/ssl/admin-key.pem
kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=admin
kubectl config use-context kubernetes
生成的 kubeconfig 被保存到 ~/.kube/config 文件;配置文件描述了集群、用户和上下文。
本段设置了所需要访问的集群的信息。使用 set-cluster 设置了需要访问的集群,如上为 kubernetes,这只是个名称,实际为--server 指向的 apiserver;--certificate-authority 设置了该集群的公钥;--embed-certs 为 true 表示将--certificate-authority 证书写入到 kubeconfig 中;--server 则表示该集群的 kube-apiserver 地址。 生成的 kubeconfig 被保存到 ~/.kube/config 文件。
本段主要设置用户的相关信息,主要是用户证书。如上的用户名为 admin,证书为:/etc/kubernetes/ssl/admin.pem,私钥为:/etc/kubernetes/ssl/admin-key.pem。注意客户端的证书首先要经过集群 CA 的签署,否则不会被集群认可。此处使用的是 ca 认证方式,也可以使用 token 认证,如 kubelet 的 TLS Bootstrap 机制下的 bootstrapping 使用的就是 token 认证方式。上述 kubectl 使用的是 ca 认证,不需要 token 字段。
context 定义了一个命名的 cluster、user、namespace 元组,用于使用提供的认证信息和命名空间将请求发送到指定的集群。 三个都是可选的,仅使用 cluster、user、namespace 之一指定上下文,或指定 none。
使用 kubectl config use-context kubernetes 来使用名为 kubernetes 的环境项来作为配置。如果配置了多个环境项,可以通过切换不同的环境项名字来访问到不同的集群环境。也可以修改默认的 namespace 名字。
kubectl config set-context --current --namespace=kube-system
查看相应的参数:
kubectl config view
备注:使用 kubeconfig 还需要注意用户已经经过授权(如 RBAC 授权),上述例子中用户的证书中 OU 字段为 system:masters,kube-apiserver 预定义的 RoleBinding cluster-admin 将 Group system:masters 与 Role cluster-admin 绑定,该 Role 授予了调用 kube...
在管理 k8s 集群的时候,避免不了使用 kubectl 命令工具,但是该命令还是挺复杂的,使用中也记不住那么多的 api 选项,可以使用 kubectl 命令补全工具。
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
使用效果:
使用别名进一步简化:
alias k=kubectl
complete -F __start_kubectl k
/etc/profile 或 ~/.bashrc

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online