二进制安装Kubernetes(k8s)v1.36.0
二进制安装Kubernetesk8sv1.36.0为什么选择二进制安装在生产环境中Kubernetes集群的安装方式直接决定了后续运维的复杂度。虽然kubeadm提供了便捷的一键部署但二进制安装有几个不可替代的优势-完全可控每个组件kube-apiserver、etcd、kubelet等的版本、启动参数、证书都由你亲手指定便于深度定制和排障。-性能优化跳过容器化封装直接使用系统级二进制减少一层抽象适合对延迟敏感的场景。-离线部署友好二进制文件可以预先下载无需依赖外部仓库适合内网环境。-学习价值理解每个组件如何协同工作是进阶K8s运维的必经之路。本文将以v1.36.0假设未来版本实际以官方发布为准为例演示从零开始搭建一个单Master、单Worker的最小集群。我们将使用systemd管理服务并基于etcd存储。—### 环境准备与架构规划我们准备两台Ubuntu 22.04虚拟机或裸机-master01192.168.1.102C4G-worker01192.168.1.112C4G所需二进制包从kubernetes release下载v1.36.0-kube-apiserver、kube-controller-manager、kube-schedulerMaster节点-kubelet、kube-proxyWorker节点-etcdv3.5.x单独下载证书体系使用cfssl生成自签CA分别签发apiserver、etcd、kubelet等证书。为简化这里我们使用openssl生成一个通用的自签证书生产环境务必使用正规CA或cfssl。—### 第一步下载并解压二进制在所有节点上执行以下命令bash# 创建目录结构sudo mkdir -p /etc/kubernetes/{pki,manifests}sudo mkdir -p /var/lib/kubernetessudo mkdir -p /var/lib/etcd# 下载K8s v1.36.0二进制以Linux amd64为例wget https://dl.k8s.io/v1.36.0/kubernetes-server-linux-amd64.tar.gztar -xzf kubernetes-server-linux-amd64.tar.gzcd kubernetes/server/bin# 将需要的二进制复制到/usr/local/binsudo cp kube-apiserver kube-controller-manager kube-scheduler kubelet kube-proxy /usr/local/bin/# 下载etcd单独wget https://github.com/etcd-io/etcd/releases/download/v3.5.13/etcd-v3.5.13-linux-amd64.tar.gztar -xzf etcd-v3.5.13-linux-amd64.tar.gzsudo cp etcd-v3.5.13-linux-amd64/etcd* /usr/local/bin/注意v1.36.0的二进制包可能包含kubeadm等工具但我们只取需要的部分。解压后请确认文件有执行权限chmod x。—### 第二步生成证书与加密配置在master01上生成CA和服务器证书简化版使用opensslbash# 生成CA私钥和自签证书openssl genrsa -out /etc/kubernetes/pki/ca.key 2048openssl req -x509 -new -nodes -key ca.key -subj /CNkubernetes-ca -days 3650 -out ca.crt# 生成apiserver密钥和证书需包含IP和DNSopenssl genrsa -out apiserver.key 2048cat apiserver-openssl.cnf EOF[req]req_extensions v3_reqdistinguished_name req_distinguished_name[req_distinguished_name][ v3_req ]basicConstraints CA:FALSEkeyUsage nonRepudiation, digitalSignature, keyEnciphermentsubjectAltName alt_names[alt_names]IP.1 192.168.1.10IP.2 127.0.0.1DNS.1 kubernetes.defaultDNS.2 master01EOFopenssl req -new -key apiserver.key -subj /CNkube-apiserver -out apiserver.csr -config apiserver-openssl.cnfopenssl x509 -req -in apiserver.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out apiserver.crt -days 3650 -extensions v3_req -extfile apiserver-openssl.cnf# 生成etcd证书类似略重要这个证书生成过程是高度简化的生产环境必须使用cfssl管理每个组件的独立证书并设置正确的Extended Key Usage。这里为了演示可运行性使用了宽松配置。—### 第三步配置etcd集群单节点在master01上创建etcd的systemd服务bashsudo tee /etc/systemd/system/etcd.service EOF[Unit]Descriptionetcd key-value storeAfternetwork.target[Service]ExecStart/usr/local/bin/etcd \\ --nameetcd-master \\ --data-dir/var/lib/etcd \\ --listen-client-urlshttps://192.168.1.10:2379,https://127.0.0.1:2379 \\ --advertise-client-urlshttps://192.168.1.10:2379 \\ --listen-peer-urlshttps://192.168.1.10:2380 \\ --initial-advertise-peer-urlshttps://192.168.1.10:2380 \\ --initial-clusteretcd-masterhttps://192.168.1.10:2380 \\ --client-cert-authtrue \\ --cert-file/etc/kubernetes/pki/etcd.crt \\ --key-file/etc/kubernetes/pki/etcd.key \\ --peer-cert-file/etc/kubernetes/pki/etcd-peer.crt \\ --peer-key-file/etc/kubernetes/pki/etcd-peer.key \\ --trusted-ca-file/etc/kubernetes/pki/ca.crt \\ --peer-trusted-ca-file/etc/kubernetes/pki/ca.crtRestartalwaysRestartSec5[Install]WantedBymulti-user.targetEOFsudo systemctl daemon-reloadsudo systemctl start etcdsudo systemctl enable etcd验证bashsudo ETCDCTL_API3 etcdctl --cacert/etc/kubernetes/pki/ca.crt --cert/etc/kubernetes/pki/etcd.crt --key/etc/kubernetes/pki/etcd.key --endpointshttps://192.168.1.10:2379 endpoint health—### 第四步启动kube-apiserver这是K8s的核心组件负责所有RESTful API请求。需要配置--etcd-servers、--service-cluster-ip-range等。bashsudo tee /etc/systemd/system/kube-apiserver.service EOF[Unit]DescriptionKubernetes API ServerAfteretcd.service[Service]ExecStart/usr/local/bin/kube-apiserver \\ --advertise-address192.168.1.10 \\ --allow-privilegedtrue \\ --apiserver-count1 \\ --audit-log-maxage30 \\ --audit-log-maxbackup3 \\ --audit-log-maxsize100 \\ --audit-log-path/var/log/audit.log \\ --authorization-modeNode,RBAC \\ --bind-address0.0.0.0 \\ --client-ca-file/etc/kubernetes/pki/ca.crt \\ --enable-admission-pluginsNamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota \\ --etcd-cafile/etc/kubernetes/pki/ca.crt \\ --etcd-certfile/etc/kubernetes/pki/apiserver.crt \\ --etcd-keyfile/etc/kubernetes/pki/apiserver.key \\ --etcd-servershttps://192.168.1.10:2379 \\ --kubelet-certificate-authority/etc/kubernetes/pki/ca.crt \\ --kubelet-client-certificate/etc/kubernetes/pki/apiserver.crt \\ --kubelet-client-key/etc/kubernetes/pki/apiserver.key \\ --kubelet-preferred-address-typesInternalIP,ExternalIP,Hostname \\ --secure-port6443 \\ --service-account-issuerhttps://kubernetes.default.svc \\ --service-account-key-file/etc/kubernetes/pki/sa.pub \\ --service-account-signing-key-file/etc/kubernetes/pki/sa.key \\ --service-cluster-ip-range10.96.0.0/12 \\ --tls-cert-file/etc/kubernetes/pki/apiserver.crt \\ --tls-private-key-file/etc/kubernetes/pki/apiserver.key \\ --v2RestartalwaysRestartSec5[Install]WantedBymulti-user.targetEOF# 生成ServiceAccount密钥对用于JWTopenssl genrsa -out /etc/kubernetes/pki/sa.key 2048openssl rsa -in sa.key -pubout -out sa.pubsudo systemctl daemon-reloadsudo systemctl start kube-apiserversudo systemctl enable kube-apiserver验证bashcurl -k https://192.168.1.10:6443/healthz—### 第五步启动controller-manager和scheduler这两个组件相对简单只需指向正确的apiserver地址。bash# controller-managersudo tee /etc/systemd/system/kube-controller-manager.service EOF[Unit]DescriptionKubernetes Controller ManagerAfterkube-apiserver.service[Service]ExecStart/usr/local/bin/kube-controller-manager \\ --bind-address0.0.0.0 \\ --kubeconfig/etc/kubernetes/controller-manager.kubeconfig \\ --leader-electtrue \\ --cluster-signing-cert-file/etc/kubernetes/pki/ca.crt \\ --cluster-signing-key-file/etc/kubernetes/pki/ca.key \\ --controllers*,bootstrapsigner,tokencleaner \\ --use-service-account-credentialstrue \\ --v2RestartalwaysRestartSec5[Install]WantedBymulti-user.targetEOF# schedulersudo tee /etc/systemd/system/kube-scheduler.service EOF[Unit]DescriptionKubernetes SchedulerAfterkube-apiserver.service[Service]ExecStart/usr/local/bin/kube-scheduler \\ --bind-address0.0.0.0 \\ --kubeconfig/etc/kubernetes/scheduler.kubeconfig \\ --leader-electtrue \\ --v2RestartalwaysRestartSec5[Install]WantedBymulti-user.targetEOF注意这里需要生成两个kubeconfig文件controller-manager和scheduler用于与apiserver认证。核心是用kubectl config set-cluster和set-credentials命令创建。—### 第六步配置Worker节点kubelet和kube-proxy在worker01上kubelet需要注册到apiserver。我们使用bootstrap token简化流程bash# 生成bootstrap token在master上执行kubeadm token create --print-join-command # 或者手动生成随机token但因为是纯二进制我们手动创建kubelet的kubeconfigbash# 在worker01上创建kubelet.kubeconfigkubectl config set-cluster kubernetes --serverhttps://192.168.1.10:6443 --certificate-authority/etc/kubernetes/pki/ca.crt --kubeconfig/etc/kubernetes/kubelet.kubeconfigkubectl config set-credentials kubelet --tokenYOUR_TOKEN --kubeconfig/etc/kubernetes/kubelet.kubeconfigkubectl config set-context default --clusterkubernetes --userkubelet --kubeconfig/etc/kubernetes/kubelet.kubeconfigkubectl config use-context default --kubeconfig/etc/kubernetes/kubelet.kubeconfig然后创建kubelet服务bashsudo tee /etc/systemd/system/kubelet.service EOF[Unit]DescriptionKubernetes KubeletAftercontainerd.service[Service]ExecStart/usr/local/bin/kubelet \\ --kubeconfig/etc/kubernetes/kubelet.kubeconfig \\ --config/etc/kubernetes/kubelet-config.yaml \\ --cgroup-driversystemd \\ --network-plugincni \\ --pod-infra-container-imageregistry.k8s.io/pause:3.10 \\ --v2RestartalwaysRestartSec5[Install]WantedBymulti-user.targetEOF对应的kubelet-config.yamlyamlapiVersion: kubelet.config.k8s.io/v1beta1kind: KubeletConfigurationaddress: 0.0.0.0port: 10250authentication: anonymous: enabled: false webhook: enabled: trueauthorization: mode: WebhookclusterDomain: cluster.localclusterDNS: - 10.96.0.10最后启动kubelet和kube-proxykube-proxy使用daemonset方式部署即可但也可用二进制。—### 第七步验证集群在master上设置kubectlbashkubectl config set-cluster kubernetes --serverhttps://192.168.1.10:6443 --certificate-authority/etc/kubernetes/pki/ca.crtkubectl config set-credentials admin --tokenYOUR_ADMIN_TOKENkubectl config set-context default --clusterkubernetes --useradminkubectl config use-context default查看节点状态bashkubectl get nodes如果一切正常你应该看到worker01处于Ready状态。—### 常见问题与排障1.证书不匹配确保所有证书的Subject Alternative Name包含正确的IP和DNS。2.etcd连接失败检查etcdctl endpoint health确认证书路径正确。3.kubelet无法注册查看journalctl -u kubelet -f日志通常为token过期或RBAC问题。4.Pod内DNS解析失败检查CoreDNS是否部署以及clusterDNS配置是否正确。—### 总结二进制安装Kubernetes v1.36.0虽然步骤繁琐但每一步都清晰可控。本文从环境准备、证书生成、etcd、apiserver、controller-manager、scheduler到kubelet/kube-proxy完整演示了一个最小集群的搭建过程。关键点在于-证书体系必须严谨否则后续所有组件通信都会失败。-systemd管理让服务自动重启提升稳定性。-kubeconfig是连接apiserver的“钥匙”必须正确配置。这种安装方式适合对K8s有深入理解需求的运维人员虽然初始成本高但长期维护中能避免黑盒问题。如果你追求快速部署kubeadm依然是不错的选择但若需要定制化或离线环境二进制方案值得掌握。提示v1.36.0的完整二进制包可能包含更多CNI插件请确保安装cni-plugins如bridge、host-local到/opt/cni/bin否则Pod无法获得网络。

相关新闻

PyAutoGUI入门指南:从零实现Python鼠标自动化与图像识别

PyAutoGUI入门指南:从零实现Python鼠标自动化与图像识别

1. 为什么说PyAutoGUI是鼠标自动化的“入门首选”?如果你正在寻找一个能快速上手、用几行代码就能让鼠标“自己动起来”的Python库,那PyAutoGUI几乎是不二之选。我最初接触它,是为了解决一个非常具体且枯燥的问题:每天需要手动点击…

2026/8/1 4:56:38 阅读更多 →
VRCT终极指南:如何在VRChat中实现实时翻译与语音转录

VRCT终极指南:如何在VRChat中实现实时翻译与语音转录

VRCT终极指南:如何在VRChat中实现实时翻译与语音转录 【免费下载链接】VRCT VRCT(VRChat Chatbox Translator & Transcription) 项目地址: https://gitcode.com/gh_mirrors/vr/VRCT 你是否曾在VRChat中遇到语言障碍?想和日本玩家交流却不懂日…

2026/8/1 4:56:38 阅读更多 →
158、TinyML模型训练最佳实践:持续学习

158、TinyML模型训练最佳实践:持续学习

TinyML模型训练最佳实践:持续学习 昨晚调试一块STM32U5上的手势识别模型,发现部署三周后准确率从92%掉到了78%。用户新增了几个自定义手势,模型开始把“滑动”误判成“点击”。这不是过拟合,是典型的“灾难性遗忘”——新知识覆盖了旧知识,而TinyML设备又不能像云端那样随…

2026/8/1 4:55:38 阅读更多 →

最新新闻

AWS SNS HTTPS订阅自动删除问题排查与解决

AWS SNS HTTPS订阅自动删除问题排查与解决

1. AWS SNS HTTPS订阅自动删除问题深度解析最近在项目中使用AWS SNS的HTTPS订阅功能时,遇到了订阅被自动删除的诡异情况。这个问题困扰了我们团队整整两周,最终通过层层排查找到了根本原因。本文将完整还原整个排查过程,并分享经过实战验证的…

2026/8/1 6:17:06 阅读更多 →
Java数组与集合框架深度解析:从内存模型到实战应用

Java数组与集合框架深度解析:从内存模型到实战应用

1. 项目概述:从“存储”到“管理”的思维跃迁刚入行那会儿,每次面试被问到“数组和集合有什么区别”,我总想着把书上的定义背一遍:数组长度固定、类型一致;集合长度可变、能存对象……背完感觉挺对,但真到写…

2026/8/1 6:17:06 阅读更多 →
AI PPT技术解析:从结构化原理到免返工实践

AI PPT技术解析:从结构化原理到免返工实践

1. 从“改到崩溃”到“一次成型”:AI PPT的质变时刻做PPT,大概是每个职场人、学生、创业者都绕不开的“噩梦”。我经历过无数次这样的场景:深夜的办公室里,对着第N版PPT,反复调整字体、对齐、配色,只为满足…

2026/8/1 6:17:06 阅读更多 →
汇编语言实验四:掌握[bx]与loop指令实现内存循环写入

汇编语言实验四:掌握[bx]与loop指令实现内存循环写入

1. 从“纸上谈兵”到“真枪实弹”:为什么实验四是个分水岭如果你正在学习王爽老师的《汇编语言》,并且已经啃完了前几章,那么恭喜你,你即将迎来第一个真正意义上的“实战”环节——实验四。很多朋友在学汇编时都有这种感觉&#x…

2026/8/1 6:17:06 阅读更多 →
网络图片处理全流程:从爬取审核到存储优化与版权管理

网络图片处理全流程:从爬取审核到存储优化与版权管理

1. 先搞清楚“小马弔图”到底是什么类型的内容“小马弔图”这个说法,在中文网络语境里通常指的是围绕“小马”主题制作的搞笑图片、表情包或梗图。这类内容往往带有幽默、调侃或戏谑的成分,是网络文化中常见的一种表达形式。它可能源于动画、游戏、影视作…

2026/8/1 6:17:06 阅读更多 →
如何3步掌握N_m3u8DL-RE:跨平台流媒体下载终极方案

如何3步掌握N_m3u8DL-RE:跨平台流媒体下载终极方案

如何3步掌握N_m3u8DL-RE:跨平台流媒体下载终极方案 【免费下载链接】N_m3u8DL-RE Cross-Platform, modern and powerful stream downloader for MPD/M3U8/ISM. English/简体中文/繁體中文. 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u8DL-RE …

2026/8/1 6:16:05 阅读更多 →

日新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/8/1 5:19:34 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/1 0:00:48 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/1 0:00:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/1 0:00:48 阅读更多 →