当前位置: 首页 > article >正文

Kubernetes集群快速搭建指南

Kubernetes集群快速搭建指南引言Kubernetes的时代哥们别整那些花里胡哨的作为一个前端开发兼摇滚鼓手我最烦的就是复杂的环境搭建。但Kubernetes作为云原生时代的基础设施你不得不掌握它。今天我就给你们整一套硬核的Kubernetes集群快速搭建方案直接上代码不玩虚的一、搭建前的准备1. 硬件要求Master节点2核CPU4GB内存50GB磁盘Worker节点1核CPU2GB内存20GB磁盘网络要求所有节点之间网络互通2. 系统要求操作系统Ubuntu 20.04 LTS 或 CentOS 7/8Docker19.03 版本kubeadm1.21 版本3. 环境准备# 更新系统 apt update apt upgrade -y # 关闭防火墙 ufw disable # 关闭selinux setenforce 0 # 关闭swap swapoff -a sed -i /swap/s/^/#/ /etc/fstab # 配置内核参数 cat /etc/sysctl.d/k8s.conf EOF net.bridge.bridge-nf-call-ip6tables 1 net.bridge.bridge-nf-call-iptables 1 net.ipv4.ip_forward 1 EOF sysctl --system二、安装Docker# 安装Docker apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - add-apt-repository deb [archamd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable apt update apt install -y docker-ce docker-ce-cli containerd.io # 配置Docker daemon cat /etc/docker/daemon.json EOF { exec-opts: [native.cgroupdriversystemd], log-driver: json-file, log-opts: { max-size: 100m }, storage-driver: overlay2 } EOF # 重启Docker systemctl restart docker systemctl enable docker三、安装Kubernetes组件# 添加Kubernetes源 curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - cat /etc/apt/sources.list.d/kubernetes.list EOF deb https://apt.kubernetes.io/ kubernetes-xenial main EOF # 安装kubeadm、kubelet、kubectl apt update apt install -y kubeadm1.21.0-00 kubelet1.21.0-00 kubectl1.21.0-00 # 固定版本 apt-mark hold kubeadm kubelet kubectl # 启动kubelet systemctl enable kubelet systemctl start kubelet四、初始化Master节点# 初始化Master节点 kubeadm init --kubernetes-versionv1.21.0 --pod-network-cidr10.244.0.0/16 # 配置kubectl mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config # 安装网络插件Calico kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml # 查看集群状态 kubectl get nodes kubectl get pods -n kube-system五、添加Worker节点# 在Master节点上生成加入命令 kubeadm token create --print-join-command # 在Worker节点上执行加入命令 # 示例kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # 在Master节点上查看节点状态 kubectl get nodes六、使用Minikube快速搭建单节点集群# 安装Minikube curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 install minikube-linux-amd64 /usr/local/bin/minikube # 启动Minikube minikube start --driverdocker # 查看集群状态 minikube status kubectl get nodes七、使用K3s搭建轻量级集群# 安装K3s Master节点 curl -sfL https://get.k3s.io | sh - # 查看节点状态 kubectl get nodes # 获取加入令牌 cat /var/lib/rancher/k3s/server/node-token # 在Worker节点上安装 curl -sfL https://get.k3s.io | K3S_URLhttps://master-ip:6443 K3S_TOKENtoken sh -八、集群配置和验证1. 配置Pod安全策略# pod-security-policy.yaml apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: restricted annotations: seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/default seccomp.security.alpha.kubernetes.io/defaultProfileName: docker/default apparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/default apparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default spec: privileged: false allowPrivilegeEscalation: false requiredDropCapabilities: - ALL volumes: - configMap - emptyDir - projected - secret - downwardAPI - persistentVolumeClaim hostNetwork: false hostIPC: false hostPID: false runAsUser: rule: MustRunAsNonRoot seLinux: rule: RunAsAny supplementalGroups: rule: MustRunAs ranges: - min: 1 max: 65535 fsGroup: rule: MustRunAs ranges: - min: 1 max: 655352. 部署测试应用# nginx-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: nginx:1.19.10 ports: - containerPort: 80# 部署应用 kubectl apply -f nginx-deployment.yaml # 查看应用状态 kubectl get pods # 暴露服务 kubectl expose deployment nginx --typeNodePort --port80 # 查看服务 kubectl get services3. 集群健康检查# 检查节点状态 kubectl get nodes # 检查系统组件 kubectl get pods -n kube-system # 检查集群信息 kubectl cluster-info # 检查API服务器 kubectl get --raw/healthz九、常见问题和解决方案1. 节点无法加入集群问题Worker节点加入集群失败提示连接超时解决方案检查Master节点的防火墙是否关闭检查网络连接是否正常检查令牌是否过期重新生成令牌# 重新生成令牌 kubeadm token create --print-join-command2. Pod网络无法通信问题Pod之间无法通信网络插件未正常运行解决方案检查网络插件是否正确安装检查节点间网络是否互通检查防火墙规则# 检查Calico状态 kubectl get pods -n calico-system # 查看网络插件日志 kubectl logs -n calico-system calico-pod-name3. 资源不足问题Pod调度失败提示资源不足解决方案增加节点资源调整Pod资源请求和限制清理不需要的Pod# 查看节点资源使用情况 kubectl describe node node-name # 查看Pod资源使用情况 kubectl top pods十、最佳实践1. 生产环境最佳实践高可用集群部署多个Master节点实现高可用备份定期备份etcd数据监控部署Prometheus和Grafana监控集群日志管理部署ELK或Loki收集和分析日志安全配置RBAC、Pod安全策略和网络策略2. 性能优化资源限制为所有Pod设置资源请求和限制节点亲和性合理配置Pod的节点亲和性水平扩展使用HPA实现自动水平扩展存储优化使用合适的存储类和持久卷3. 日常维护定期更新定期更新Kubernetes版本节点维护使用cordon和drain进行节点维护清理资源定期清理不需要的资源健康检查定期进行集群健康检查十一、实战案例案例搭建高可用Kubernetes集群环境3个Master节点3个Worker节点负载均衡器HAProxy步骤配置负载均衡器转发API服务器流量在第一个Master节点上初始化集群在其他Master节点上加入集群在Worker节点上加入集群部署网络插件和其他组件成果高可用Kubernetes集群自动故障转移负载均衡弹性扩展结论Kubernetes集群搭建的未来炸了Kubernetes集群搭建已经变得越来越简单从复杂的手动配置到现在的一键部署大大降低了使用门槛。作为前端开发者掌握Kubernetes集群搭建是进入云原生时代的必备技能。记住直接上代码别整那些花里胡哨的Kubernetes集群搭建就是要硬核、高效、稳定。这就是技术的生机所在。

相关文章:

Kubernetes集群快速搭建指南

Kubernetes集群快速搭建指南 引言:Kubernetes的时代 哥们,别整那些花里胡哨的!作为一个前端开发兼摇滚鼓手,我最烦的就是复杂的环境搭建。但Kubernetes作为云原生时代的基础设施,你不得不掌握它。今天,我就…...

云原生时代的前端部署最佳实践

云原生时代的前端部署最佳实践 引言:前端部署的进化 哥们,别整那些花里胡哨的!作为一个前端开发兼摇滚鼓手,我最烦的就是部署时的各种幺蛾子。从传统的FTP上传,到现在的云原生部署,前端部署已经发生了天翻地…...

微信小程序助力老年智能评估,Pillow高级实战案例:图像处理的进阶应用。

基于微信小程序的关爱老年人在线能力评估系统设计 系统背景与意义 随着老龄化社会进程加速,老年人能力评估成为养老服务的重要环节。传统纸质评估方式效率低、数据难留存。基于微信小程序的在线评估系统可实现便捷化、标准化评估,提升养老服务智能化水平…...

LIS302DL加速度计I²C驱动库LS302i2c详解

1. LS302i2c 库概述:面向嵌入式系统的 LIS302DL IC 加速度计驱动实现LS302i2c 是一个专为 STM32 及兼容 Cortex-M 微控制器设计的轻量级、可移植 IC 接口加速度计驱动库,其核心目标是为 STMicroelectronics 的 LIS302DL 三轴数字加速度传感器提供稳定、低…...

隐私优先方案:OpenClaw+本地化Qwen3.5-9B处理敏感数据

隐私优先方案:OpenClaw本地化Qwen3.5-9B处理敏感数据 1. 为什么我们需要隐私优先的AI方案 去年我在帮一家诊所做数字化改造时,遇到了一个棘手问题:他们需要自动化处理患者病历,但又担心使用云端AI服务会导致数据泄露。这让我意识…...

Tach库:嵌入式单通道转速测量轻量实现

1. Tach库概述:单通道编码器转速测量的嵌入式实现方案 Tach库是一个轻量级、高精度的嵌入式转速测量工具,专为单通道数字脉冲信号设计,典型应用场景包括红外对射式槽型光电开关(slotted wheel)、霍尔效应转速传感器、磁…...

PN7150/PN7160 NFC控制器I²C驱动库详解

1. 项目概述Electronic Cats PN7150/PN7160 库是一个面向嵌入式平台的轻量级 IC 驱动库,专为 NXP 公司推出的 PN7150 和 PN7160 NFC 控制器芯片设计。该库并非简单封装,而是基于 NCI(NFC Controller Interface)1.0 协议规范实现的…...

(23)ArcGIS Pro 空间连接与缓冲区分析:属性传递、多环缓冲区实战全攻略

点赞+关注送: 1、天地图GS(2024)0650号_2025.9版; 2、全国土地覆盖数据CLCD2025年; 注:其他数据也可私信或留言,看是否有 前言 在 ArcGIS Pro 空间分析中,缓冲区分析与空…...

从工业5.0到实战:一个智能仓库管理系统的设计与Flutter优化

引言 工业5.0并非对工业4.0的颠覆,而是一次“人性的回归”与“价值的重塑”。它强调以人为本(Human-centric)、可持续(Sustainable)与韧性(Resilient)。作为一名计算机专业的毕业生,…...

OpenClaw多模态技能扩展:用Qwen3.5-9B实现截图OCR自动归档

OpenClaw多模态技能扩展:用Qwen3.5-9B实现截图OCR自动归档 1. 为什么需要智能截图归档 作为一个长期依赖截图保存信息的用户,我的桌面常年堆积着数百张未命名的截图文件。传统的解决方案无非两种:手动重命名(耗时费力&#xff0…...

AI Agent学习日记 Day3

今天没怎么搞,只做了一点小优化。之前我是用 agent.stream(invoke_input,stream_mode["messages", "updates"],config {"configurable": {"thread_id": "1"}}) 通过mode "messages"来获取并流式输…...

OpenClaw学习助手:Qwen3.5-9B-AWQ-4bit自动整理网课截图笔记

OpenClaw学习助手:Qwen3.5-9B-AWQ-4bit自动整理网课截图笔记 1. 为什么需要自动化学习助手 作为一名经常通过网课充电的技术从业者,我长期被一个痛点困扰:每次听完两小时的课程,手机相册里会堆满几十张截图,里面有老…...

探索混合动力汽车Simulink整车模型:并联P2构型与基于规则的控制策略

混合动力汽车simulink整车模型,并联P2构型 基于规则的控制策略,可以直接进行CTC,WTLC,NEDC等工况仿真。嘿,各位技术爱好者!今天咱来聊聊混合动力汽车Simulink整车模型,特别是并联P2构型以及基于…...

2026年4月3日 理论基石:数据量与模型参数量的关系

文章目录1. 理论基石:数据量与模型参数量的关系Kaplan Scaling Laws (OpenAI, 2020)Chinchilla Scaling Laws (DeepMind, 2022)2. 实战计算:针对你的 nanoGPT 实验第一步:估算总 Token 数第二步:计算训练步数 (max_iters)第三步&a…...

基于Python的毕业生实习管理系统

项目介绍:基于Python的毕业生实习管理系统技术栈 项目编号:本课题采用 Python 语言进行开发,系统整体基于 Web 平台实现。前端页面主要使用 HTML、CSS、JavaScript 进行构建,并结合 Bootstrap 提升页面布局与交互效果;…...

seo推广外包需要多少投入_seo推广外包如何避免被算法惩罚

SEO推广外包需要多少投入_SEO推广外包如何避免被算法惩罚 在当今数字化经济时代,SEO(搜索引擎优化)推广已经成为企业提升网站流量和品牌知名度的重要手段。随着搜索引擎算法的不断更新,企业在进行SEO推广外包时,不仅需…...

客户和采购都在用豆包、deepseek查资料,怎么才能让这些国内头部大模型在回答时优先推荐公司的产品?

随着人工智能技术的爆发,企业获客与消费者决策的路径正在发生深刻的重构。据近期的公开市场调研与行业报告显示,包括豆包、DeepSeek、文心一言在内的国内头部大模型,其月活跃用户数正呈现指数级增长。一个不可忽视的趋势是:无论是…...

expected_conditions(EC)与元素相关的常用方法

与元素(Element)相关的 expected_conditions,分为存在、可见、可点击、不可见/消失、属性/文本、选中状态等几类引用:from selenium.webdriver.support import expected_conditions as EC1. 元素存在(Presence&#xf…...

MySQL的HAVING:掌握分组过滤的高级用法(实战详解)

本文全面讲解MySQL的HAVING用法,从基础语法到高级技巧,包括分组过滤、聚合查询优化与实战应用。 文章目录一、什么是MySQL的HAVINGHAVING的定义与作用HAVING与WHERE的本质区别二、HAVING的基本语法详解标准语法结构执行顺序解析三、MySQL的HAVING与GROUP…...

javascript之Dom查询操作1

1.通过Id获取单个元素假定要获取下面html代码里面id是div1的div标签内容语法是document.getElementById(Id值)<div id"div1">div1</div>let a document.getElementById("div1") console.log(a)2.根据name属性值获取语法是document.getElement…...

Windows下OpenClaw避坑指南:千问3.5-35B-A3B-FP8接口配置全流程

Windows下OpenClaw避坑指南&#xff1a;千问3.5-35B-A3B-FP8接口配置全流程 1. 为什么选择OpenClaw千问3.5组合&#xff1f; 去年我在尝试自动化处理大量PDF报告时&#xff0c;发现市面上的RPA工具要么太笨重&#xff0c;要么无法处理复杂语义。直到遇到OpenClaw这个开源智能…...

告别token焦虑,Claude Code 本地免费运行

零API无限次100%离线&#xff01;5分钟把专属AI程序员装进电脑&#xff0c;告别API烧钱与代码泄露焦虑 有没有开发者和我一样&#xff0c;被云端 AI 编码工具搞得心力交瘁&#xff1f; Claude Code 写代码是真的顺手&#xff0c;但动辄要绑定 API 密钥、按调用量付费烧钱&#…...

前端测试吐槽:别再写那些没用的测试了!

前端测试吐槽&#xff1a;别再写那些没用的测试了&#xff01; 毒舌时刻 前端测试就像体检——每个人都知道要做&#xff0c;但真正认真做的没几个。Jest、React Testing Library、Cypress... 一堆测试工具让你挑花了眼&#xff0c;结果你的测试还是写得像一坨屎。 我就想不明白…...

【数据结构】线索二叉树之中序遍历线索化详解与实现

在二叉树的遍历过程中&#xff0c;我们会发现大量的空指针域被浪费&#xff0c;而线索二叉树的核心思想就是利用这些空指针&#xff0c;将其指向节点的前驱或后继节点&#xff0c;从而实现二叉树的非递归遍历无需借助栈&#xff0c;提升遍历效率。本文将详细讲解中序遍历线索化…...

2026-04-02 打卡第 2 天

# 2026-04-02 打卡第 2 天 # 列表 """ li [1,2,a] print(li) # 输出结果&#xff1a;[1, 2, a] """# 列表中添加元素 # 整体添加 append """ li [a,b,c] li.append(d) print(li) # 输出结果&#xff1a;[a, b, c, d] "&qu…...

【数据结构与算法】第24篇:哈夫曼树与哈夫曼编码

一、基本概念1.1 带权路径长度在二叉树中&#xff1a;路径长度&#xff1a;从一个节点到另一个节点经过的边数带权路径长度(WPL)&#xff1a;所有叶子节点的权重 路径长度 之和示例&#xff1a;text叶子节点&#xff1a;A(7), B(5), C(2), D(4)普通树&#xff1a;15/ \7 8/…...

创意随笔:智能转录便携终端

创意随笔&#xff5c;智能转录便携终端 项目构想 核心亮点 以独立麦克风拾音为核心入口&#xff0c;实现全链路闭环实时翻译 从收音、ASR 识别、翻译、TTS 合成到语音播放/耳机输出&#xff0c;全程不依赖手机或电脑算力&#xff0c;自成一套完整翻译系统&#xff0c;真正做到端…...

技术创业中的风险管理:从内核开发到商业稳定

技术创业中的风险管理&#xff1a;从内核开发到商业稳定 技术创业的风险挑战 作为一名从Linux内核开发者转型产品经理再到科技创业者的人&#xff0c;我深刻体会到风险管理在技术创业中的重要性。技术创业过程中充满了各种风险&#xff0c;从技术风险到商业风险&#xff0c;从市…...

嵌入式开发中的策略模式应用与优化

1. 策略模式在嵌入式开发中的核心价值在嵌入式系统开发中&#xff0c;我们经常遇到这样的场景&#xff1a;同一个功能模块需要根据不同的硬件环境、运行状态或外部条件采用不同的处理算法。传统做法是使用大量的if-else或switch-case语句&#xff0c;但这种做法会带来几个显著问…...

技术创业中的产品迭代:从内核开发到用户中心

技术创业中的产品迭代&#xff1a;从内核开发到用户中心 产品迭代的重要性 作为一名从Linux内核开发者转型产品经理再到科技创业者的人&#xff0c;我深刻体会到产品迭代在技术创业中的重要性。一个成功的产品不是一蹴而就的&#xff0c;而是通过不断的迭代和优化逐步发展起来的…...