kubernetes-handbook:安装与配置 kubectl 命令行工具完整指南

发布时间:2026/9/23 12:33:25

kubernetes-handbook:安装与配置 kubectl 命令行工具完整指南 kubernetes-handbook安装与配置 kubectl 命令行工具完整指南【免费下载链接】kubernetes-handbookKubernetes 架构与生态从云原生到 AI 原生基础设施的构建指南项目地址: https://gitcode.com/gh_mirrors/ku/kubernetes-handbook本文基于 kubernetes-handbook 开源仓库的 安装 kubectl 命令行工具 文档展开。kubectl 是与 Kubernetes 集群交互最直接的命令行客户端本文覆盖从下载对应版本二进制、创建基于 TLS 证书的 kubeconfig 认证文件到验证安装与日常使用技巧的完整流程并深入讲解 kubeconfig 的 cluster / user / context 三层结构与 RBAC 授权原理。读完本文你将能够在裸机部署的 Kubernetes 集群如本仓库 practice 目录描述的安装流程上独立完成 kubectl 的安装、认证配置与安全加固。kubectl 在集群中的地位Kubernetes 的所有管理操作创建 Pod、查看 Service、扩缩容、审批 CSR最终都是对 kube-apiserver 的 REST API 调用。kubectl 就是这个调用链上最常用、最直接的客户端工具它读取 kubeconfig 中的连接信息与凭据向 apiserver 发起 HTTP 请求并将返回结果格式化展示给操作者。在 kubernetes-handbook 仓库的部署体系中kubectl 承担三重角色管理员操作入口通过kubectl get componentstatuses验证 master 组件健康状态见 部署 master 节点证书签发工具利用kubectl config set-cluster / set-credentials / set-context为 kubelet、kube-proxy 生成 kubeconfig 认证文件见 创建 kubeconfig 文件集群运维工具执行部署、排查、扩缩容等日常操作见 Kubectl 命令概览 与 kubectl 命令技巧大全。下载 kubectl务必匹配集群版本kubectl 客户端与 kube-apiserver 之间存在版本兼容性要求请下载与 Kubernetes 集群版本对应的安装包否则可能出现 API 资源无法识别或请求失败的问题。方式一单独下载 client 安装包wget https://dl.k8s.io/v1.6.0/kubernetes-client-linux-amd64.tar.gz tar -xzvf kubernetes-client-linux-amd64.tar.gz cp kubernetes/client/bin/kube* /usr/bin/ chmod ax /usr/bin/kube*将v1.6.0替换为你实际部署的 Kubernetes 版本。tarball 解压后kubernetes/client/bin/目录下包含kubectl等客户端二进制示例中通过kube*通配符将全部客户端二进制统一拷贝到/usr/bin/并赋予执行权限。方式二从 server 安装包中获取如果已经下载了kubernetes-server-linux-amd64.tar.gz部署 master 节点时使用见 部署 master 节点则无需再单独下载 client 包——server tarball已经包含了 kubectl 二进制wget https://dl.k8s.io/v1.6.0/kubernetes-server-linux-amd64.tar.gz tar -xzvf kubernetes-server-linux-amd64.tar.gz cd kubernetes tar -xzvf kubernetes-src.tar.gz cp -r server/bin/{kube-apiserver,kube-controller-manager,kube-scheduler,kubectl,kube-proxy,kubelet} /usr/local/bin/验证安装安装完成后通过kubectl version检查客户端版本并确认其与 apiserver 版本的兼容性$ kubectl version Client Version: version.Info{Major:1, Minor:6, GitVersion:v1.6.0, ...} Server Version: version.Info{Major:1, Minor:6, GitVersion:v1.6.0, ...}若Server Version显示Unable to connect通常意味着 kubeconfig 尚未配置或 apiserver 地址不可达请继续下一节。创建 kubectl 的 kubeconfig 认证文件kubectl 与 kube-apiserver 通信时默认通过HTTPS 安全端口6443访问必须先通过TLS 证书认证再通过RBAC 授权。因此安装完二进制后还需为 kubectl 生成一份包含 CA 证书、客户端证书与私钥的 kubeconfig 文件默认保存到~/.kube/config。以下命令在 master 节点执行假设集群 apiserver 地址为https://172.20.0.113:6443TLS 证书文件位于/etc/kubernetes/ssl/目录证书的创建方法见 创建 TLS 证书和秘钥export KUBE_APISERVERhttps://172.20.0.113:6443 # 设置集群参数 kubectl config set-cluster kubernetes \ --certificate-authority/etc/kubernetes/ssl/ca.pem \ --embed-certstrue \ --server${KUBE_APISERVER} # 设置客户端认证参数 kubectl config set-credentials admin \ --client-certificate/etc/kubernetes/ssl/admin.pem \ --embed-certstrue \ --client-key/etc/kubernetes/ssl/admin-key.pem # 设置上下文参数 kubectl config set-context kubernetes \ --clusterkubernetes \ --useradmin # 设置默认上下文 kubectl config use-context kubernetes执行完成后生成的 kubeconfig 被保存到~/.kube/config文件。整个配置过程可以拆解为四步正好对应 kubeconfig 文件的四层结构详见 使用 kubeconfig 文件配置跨集群认证命令作用写入的 kubeconfig 字段kubectl config set-cluster定义集群连接信息apiserver 地址 CA 证书clusters[]kubectl config set-credentials定义客户端身份凭据客户端证书 私钥users[]kubectl config set-context将 cluster 与 user 绑定为一个命名上下文contexts[]kubectl config use-context将某上下文设为默认即current-contextcurrent-context--embed-certstrue的含义是将证书文件内容直接内嵌写入 kubeconfig而不是在 kubeconfig 中保存证书路径。内嵌后 kubeconfig 文件可以拷贝到任意机器使用不依赖源证书文件路径代价是文件体积变大且凭据暴露面增大kubeconfig 是 base64 编码而非加密。认证与授权原理admin 为什么拥有最高权限上面的配置中kubectl 使用admin.pem作为客户端证书。这个证书之所以能获得集群最高权限链路如下认证Authenticationkube-apiserver 启动时通过--client-ca-file/etc/kubernetes/ssl/ca.pem启用客户端证书认证见 etc/kubernetes/apiserver 中的KUBE_API_ARGS。kubectl 请求时出示admin.pemapiserver 用 ca.pem 验签通过并解析证书中的OUOrganization字段授权Authorizationapiserver 启动参数--authorization-modeRBAC启用 RBAC 授权。admin.pem证书的OU 字段值为system:masters而 kube-apiserver 预定义了一个 RoleBindingcluster-admin将Groupsystem:masters与 Rolecluster-admin绑定该 Role 授予了调用 kube-apiserver 相关 API 的权限因此使用admin.pem的 kubectl 可以执行任何 API 操作包括创建 ServiceAccount、审批 CSR、删除资源等。注意~/.kube/config文件包含 CA 证书、管理员客户端证书与私钥拥有对该集群的最高权限请妥善保管例如设置严格的文件权限chmod 600 ~/.kube/config避免提交到版本库或随意外发。kubeconfig 中的user条目除证书外也支持 token、username/password 等凭据方式具体组合规则可参考 使用 kubeconfig 或 token 进行用户身份认证。集群的 RBAC 授权模型详见 RBAC——基于角色的访问控制。用同一个 kubectl 生成其他组件的 kubeconfigkubectl 安装完成后它还充当证书配置生成器——为 kubelet、kube-proxy 等 Node 端组件生成各自的 kubeconfig 文件详见 创建 kubeconfig 文件。这些文件可以直接拷贝到 Node 节点的/etc/kubernetes/目录。为 kube-proxy 生成 kubeconfigkube-proxy 通过证书 CN 声明身份kube-proxy.pem证书中 CN 为system:kube-proxykube-apiserver预定义的 RoleBinding 将 Usersystem:kube-proxy与 Rolesystem:node-proxier绑定授予其调用 Proxy 相关 API 的权限。export KUBE_APISERVERhttps://172.20.0.113:6443 # 设置集群参数 kubectl config set-cluster kubernetes \ --certificate-authority/etc/kubernetes/ssl/ca.pem \ --embed-certstrue \ --server${KUBE_APISERVER} \ --kubeconfigkube-proxy.kubeconfig # 设置客户端认证参数 kubectl config set-credentials kube-proxy \ --client-certificate/etc/kubernetes/ssl/kube-proxy.pem \ --client-key/etc/kubernetes/ssl/kube-proxy-key.pem \ --embed-certstrue \ --kubeconfigkube-proxy.kubeconfig # 设置上下文参数 kubectl config set-context default \ --clusterkubernetes \ --userkube-proxy \ --kubeconfigkube-proxy.kubeconfig # 设置默认上下文 kubectl config use-context default --kubeconfigkube-proxy.kubeconfig注意这里每个命令都带--kubeconfigkube-proxy.kubeconfig参数指定输出到独立的文件避免覆盖~/.kube/config而 kubectl 自身配置时不带该参数默认写入~/.kube/config。为 kubelet 生成 bootstrap kubeconfigTLS Bootstrapping自 Kubernetes 1.4 起支持由 kube-apiserver 为客户端当前仅支持 kubelet自动签发 TLS 证书的TLS Bootstrapping功能无需为每个 kubelet 预先生成证书。其流程为kubelet 先用一个低权限 bootstrap token 向 apiserver 发起 CSRCertificateSigningRequest管理员审批后由 controller-manager 用 CA 签发正式证书。kubelet 的 bootstrap kubeconfig 生成命令为cd /etc/kubernetes export KUBE_APISERVERhttps://172.20.0.113:6443 # 设置集群参数 kubectl config set-cluster kubernetes \ --certificate-authority/etc/kubernetes/ssl/ca.pem \ --embed-certstrue \ --server${KUBE_APISERVER} \ --kubeconfigbootstrap.kubeconfig # 设置客户端认证参数只有 token没有证书和私钥 kubectl config set-credentials kubelet-bootstrap \ --token${BOOTSTRAP_TOKEN} \ --kubeconfigbootstrap.kubeconfig # 设置上下文参数 kubectl config set-context default \ --clusterkubernetes \ --userkubelet-bootstrap \ --kubeconfigbootstrap.kubeconfig # 设置默认上下文 kubectl config use-context default --kubeconfigbootstrap.kubeconfig其中BOOTSTRAP_TOKEN与 apiserver 的--token-auth-file/etc/kubernetes/token.csv或--experimental-bootstrap-token-auth1.9 起改名为--enable-bootstrap-token-auth配合使用token 的生成方式为export BOOTSTRAP_TOKEN$(head -c 16 /dev/urandom | od -An -t x | tr -d ) cat token.csv EOF ${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,system:kubelet-bootstrap EOF cp token.csv /etc/kubernetes/bootstrap kubeconfig 与普通 kubeconfig 的关键差异在于--embed-certstrue将certificate-authority证书写入文件供 kubelet 校验 apiserver 身份设置客户端认证参数时只指定 token没有指定证书和私钥后续正式证书由 kube-apiserver 基于 CSR 自动签发CSR 审批细节见 TLS Bootstrap。验证配置kubectl 与集群握手kubeconfig 配置完成后可通过以下命令验证 kubectl 与集群的连通性# 查看合并后的 kubeconfig 配置确认证书、地址无误 $ kubectl config view # 查看当前生效的上下文 $ kubectl config current-context # 验证 master 各组件健康状态 $ kubectl get componentstatuses NAME STATUS MESSAGE ERROR scheduler Healthy ok controller-manager Healthy ok etcd-0 Healthy {health: true} etcd-1 Healthy {health: true} etcd-2 Healthy {health: true}kubectl get componentstatuses的输出可对照 部署 master 节点 中的启动顺序验证若某个组件显示Unhealthy说明对应 systemd 服务参考 systemd 目录下的kube-apiserver.service、kube-scheduler.service、kube-controller-manager.service启动失败或健康检查端口未监听。kubectl 日常使用与效率提升配置完成后的 kubectl 是日常运维主入口其子命令分为 8 大类基础命令初级/中级、部署命令、集群管理命令、故障排查和调试命令、高级命令、设置命令与其他命令。常用操作速查kubectl get pods --all-namespaces # 列出所有 namespace 下的 pod kubectl get nodes -o wide # 列出节点及详细信息 kubectl describe pod my-pod # 查看 pod 详细状态与事件 kubectl logs -f my-pod # 流式查看 pod 日志 kubectl exec -it my-pod -- /bin/sh # 进入容器执行命令 kubectl create -f ./manifest.yaml # 通过清单文件创建资源 kubectl delete pod,service baz foo # 按名称删除资源 kubectl certificate approve csr-name # 审批 kubelet 的 CSR 请求kubectl 全部子命令及用途参考图来源Kubectl 命令概览更完整的命令清单、JSONPath 用法与输出格式化-o wide、-o jsonpath、--v6调试级别等见 kubectl 命令技巧大全。终端自动补全为提升命令行效率建议配置 kubectl 自动补全# bash需先安装 bash-completion $ source (kubectl completion bash) # zsh配合 oh-my-zsh $ source (kubectl completion zsh)zsh 用户还可修改~/.zshrc增加插件支持plugins(kubectl) source (kubectl completion zsh)多集群切换kubectl 通过 context 机制支持在多集群间切换。可以将不同集群的配置放入同一 kubeconfig或通过KUBECONFIG环境变量合并多个文件文件合并遵循第一个设置某 key 的文件优先规则详见 使用 kubeconfig 文件配置跨集群认证# 同时使用多个 kubeconfig 文件并查看合并后的配置 $ KUBECONFIG~/.kube/config:~/.kube/kubconfig2 kubectl config view # 切换到指定上下文 $ kubectl config use-context my-cluster-name安全注意事项小结版本匹配kubectl 与集群版本尽量保持一致降级或升级客户端前确认 API 兼容性凭据保护~/.kube/config内含最高权限凭据CA、客户端证书、私钥需严格控制访问权限与分发范围token 类凭据存储在 Secret 中为 base64 编码并非加密获取后务必通过base64 -d解码使用见 使用 kubeconfig 或 token 进行用户身份认证最小权限日常使用尽量避免直接使用admin/cluster-admin身份可参照 创建用户认证授权的 kubeconfig 文件 与 RBAC 为不同角色、不同 namespace 的用户签发受限凭据如 manifests/dashboard-1.7.1/admin-role.yaml 所示的管理员角色绑定示例TLS 加固apiserver 的安全端口6443应配置--client-ca-file与--tls-cert-file生产环境不要将--insecure-port绑定到非 127.0.0.1 地址参数细节见 部署 master 节点 与 etc/kubernetes/apiserver。参考文档仓库内安装 kubectl 命令行工具本文主题文档创建 kubeconfig 文件部署 master 节点使用 kubeconfig 文件配置跨集群认证Kubectl 命令概览 与 kubectl 命令技巧大全TLS Bootstrap使用 kubeconfig 或 token 进行用户身份认证【免费下载链接】kubernetes-handbookKubernetes 架构与生态从云原生到 AI 原生基础设施的构建指南项目地址: https://gitcode.com/gh_mirrors/ku/kubernetes-handbook创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/23 12:33:25

DDR5 UDIMM设计合规性:JESD308标准核心约束解析

简介:本资源为JEDEC官方发布的《DDR5 UDIMM SPEC FULL》完整标准文档,面向内存芯片设计工程师、模组制造商、硬件系统架构师及高校微电子/计算机体系结构研究者,解决DDR5 UDIMM产品开发、兼容性验证与技术选型中的核心规范依据缺失问题。文档…

2026/9/23 12:33:25

美国普瑞芯片选型避坑:保姆级教程对比3大方案

美国普瑞芯片选型避坑:保姆级教程对比3大方案 复制来的代码跑不通不知道怎么调?别急,这篇保姆级教程直接给你拆解。 很多后端和嵌入式工程师在接触美国普瑞芯片相关项目时,常陷入“代码看着对,运行全报错”的困境。这往往不是语法问题,而是底层架构、…

2026/9/23 12:28:24

3个坑让你白忙:看剧学英语源码图解原理

3个坑让你白忙:看剧学英语源码图解原理 版本升级后 API 全变了,是不是让你抓狂?昨晚刚跑通的项目,今天一更新依赖直接崩了,报错信息像天书一样看不懂。别急着删库重来,今天咱们不整虚的,直接扒开一个 GitHub…

2026/9/23 13:28:54

LoRa节点硬件设计实战:STM32L151与SX1276原理图解析

简介:这份PDF文档面向物联网、智能家居与智能城市领域的硬件开发者及电子爱好者,聚焦LoRa无线通信模块的电路原理图解析,帮助读者从硬件层面理解模块的工作机制与设计思路。压缩包内仅含1个PDF文件,大小约98KB,内容以原…

2026/9/23 13:28:54

多机系统短路故障时域仿真全流程:从建模到临界切除时间判稳

简介:面向电力系统暂态稳定研究的一份MATLAB仿真资源,聚焦三机系统线路AB段首端两相短路接地故障后的时域动态过程。资源针对多机系统故障分析需求,给出了从故障设定到0.1秒后切除故障线路的完整仿真流程,适合电力系统方向学生、研…

2026/9/23 13:28:54

981认证入门到精通:版本升级后API全变了?选型避坑指南

981认证入门到精通:版本升级后API全变了?选型避坑指南 版本升级后 API 全变了,导致线上服务直接崩盘,这种惨痛教训在开发圈子里并不少见。很多团队在选型时只看热度,忽略了版本兼容性的“坑”,结果从入门到精通的路途中,大半时间都耗在了适…

2026/9/23 13:28:54

RGB-D深度相机核心原理与选型避坑指南

开场:这个“带眼睛的相机”到底解决了什么问题做机器人和三维视觉的朋友应该都体会过那种痛:普通摄像头拍出来的是一张平面图,想知道物体离自己多远、长什么形状、能不能抓取,全靠算法从2D图像里“猜”。常年在ROS、OpenCV和深度学…

2026/9/23 13:23:53

3天搞定申报高新技术企业避坑指南

3天搞定申报高新技术企业避坑指南 配置环境就卡半天,这是很多刚接触高企申报的新手最真实的写照。别笑,真不是开玩笑。你以为只是填个表、传个文件?错。从知识产权梳理到研发费用辅助账,再到财务指标核算,每一个环节都藏着能让人崩溃的坑。我见过太多团…

2026/9/23 12:07:00

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/23 12:06:55

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/23 0:01:54

3个实战技巧搞定形式英语:从看教程到跑通性能优化

3个实战技巧搞定形式英语:从看教程到跑通性能优化 看了一堆教程还是不会写项目?别慌,这种“眼高手低”的困境在开发者圈子里太常见了。很多人以为卡点在语法,其实真正拦路虎是缺乏将知识点串联成完整链路的能力。今天咱们不聊虚的,直接拿【形式英语】这…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码