Kubernetes 集群初步部署
Kubernetes 集群初步部署
目标
本手册旨在指导您在多台虚拟机上部署一个基础的Kubernetes集群,并安装必要的工具和组件。
准备工作
- 确保所有虚拟机已经准备好,并且具有足够的资源来运行Kubernetes集群。
- 虚拟机操作系统版本一致,推荐使用Red Hat 8.x。
- 确保所有虚拟机之间网络互通。
- 推荐主机配置:
| 主机 | ip | 配置 |
|---|---|---|
| master | 192.168.3.195 | 4核,6g内存,40g硬盘 |
| node1 | 192.168.3.196 | 2核,2g内存,20g硬盘 |
| node2 | 192.168.3.197 | 2核,2g内存,20g硬盘 |
步骤
-
修改主机名
- 登录到每台虚拟机。
- 使用
hostnamectl命令设置主机名。hostnamectl set-hostname master hostnamectl set-hostname node1 hostnamectl set-hostname node2
-
配置阿里源并更新包
- 在每台虚拟机上编辑
/etc/yum.repos.d/aliyun.repo文件。
添加以下内容:sudo vim /etc/yum.repos.d/aliyun.repo[baseos] name=CentOS-$releasever-BaseOS-mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos/$releasever/BaseOS/$basearch/os/ gpgcheck=0 enabled=1[appstream] name=CentOS-$releasever-AppStream-mirrors.aliyun.com baseurl=https://mirrors.aliyun.com/centos/$releasever/AppStream/$basearch/os/ gpgcheck=0 enabled=1 - 更新包缓存。
sudo dnf makecache sudo dnf update -y
- 在每台虚拟机上编辑
-
配置SSH免密登录
- 在Master节点上生成SSH密钥。
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa - 复制公钥到所有节点。
ssh-copy-id master ssh-copy-id node1 ssh-copy-id node2 - 测试SSH连接。
ssh node1
- 在Master节点上生成SSH密钥。
-
关闭交换分区
- 在所有节点上执行以下命令。
swapoff -a echo "vm.swappiness = 0" >> /etc/sysctl.conf sysctl -p
- 在所有节点上执行以下命令。
-
关闭防火墙
- 在所有节点上执行以下命令。
systemctl disable firewalld systemctl stop firewalld
- 在所有节点上执行以下命令。
-
修改内核参数
- 在所有节点上执行以下命令。
modprobe br_netfilter echo "modprobe br_netfilter" >> /etc/profile tee /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
- 在所有节点上执行以下命令。
-
配置集群时间同步
- 在所有节点上安装并启用chrony服务。
sudo dnf install -y chrony systemctl start chronyd systemctl enable chronyd
- 在所有节点上安装并启用chrony服务。
-
配置DNF仓库
- 在所有节点上执行以下命令。
sudo dnf install -y dnf-utils device-mapper-persistent-data lvm2 sudo dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 在所有节点上执行以下命令。
-
安装Docker
- 在所有节点上执行以下命令,registry-mirrors此处替换为国内镜像源,如阿里
sudo dnf install -y docker-ce-20.10.0 docker-ce-cli-20.10.0 containerd.io systemctl start docker systemctl enable docker docker version cat > /etc/docker/daemon.json << EOF {"registry-mirrors": ["https://your.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"] } EOF systemctl daemon-reload systemctl restart docker
- 在所有节点上执行以下命令,registry-mirrors此处替换为国内镜像源,如阿里
-
添加主节点到hosts文件
- 在所有节点上执行以下命令。
echo "192.168.3.195 cluster-endpoint" >> /etc/hosts
- 在所有节点上执行以下命令。
-
安装Kubernetes
- 在所有节点上创建Kubernetes的YUM仓库。
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF - 在所有节点上安装Kubernetes组件。
sudo dnf install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6 systemctl enable kubelet
- 在所有节点上创建Kubernetes的YUM仓库。
-
安装CoreDNS
- 在所有节点上执行以下命令。
docker pull coredns/coredns:1.8.4 docker tag coredns/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4
- 在所有节点上执行以下命令。
-
初始化Kubernetes集群(仅在Master节点执行)
- 执行以下命令。
kubeadm init \ --apiserver-advertise-address=192.168.3.195 \ --control-plane-endpoint=cluster-endpoint \ --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=172.20.0.0/16 - 初始化完成后,根据提示信息执行
kubeadm join命令加入Worker节点。 - 将
kubeconfig文件复制到用户目录。mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 执行以下命令。
-
复制
kubeconfig文件到node节点- 使用SSH将
kubeconfig文件复制到Worker节点。ssh root@node1 'mkdir -p /root/.kube' ssh root@node2 'mkdir -p /root/.kube' scp /etc/kubernetes/admin.conf root@node1:/root/.kube/config scp /etc/kubernetes/admin.conf root@node2:/root/.kube/config ssh root@node1 'chmod 600 /root/.kube/config' ssh root@node2 'chmod 600 /root/.kube/config'
- 使用SSH将
-
验证节点状态
- 在Master节点上执行以下命令。
kubectl get nodeNAME STATUS ROLES AGE VERSION master Ready control-plane,master 3d21h v1.23.6 node1 Ready <none> 3d21h v1.23.6 node2 Ready <none> 3d21h v1.23.6
- 在Master节点上执行以下命令。
-
安装Kuboard图形化工具(仅在Master节点执行)
- 安装Kuboard。
kubectl apply -f https://addons.kuboard.cn/kuboard/kuboard-v3.yaml - 访问Kuboard。
输入初始用户名和密码登录。http://<master-ip>:30080- 用户名:admin
- 密码:Kuboard123
- 安装Kuboard。
注意事项
- 确保所有命令都以
sudo前缀运行,以获得必要的权限。 - 检查网络连接,确保所有节点之间能够互相访问。
- 如果遇到任何问题,请检查日志文件和输出信息,以便进行故障排除。
- 安全性考虑:在生产环境中,强烈建议使用更安全的方法来处理敏感信息,如证书和密钥。
相关文章:
Kubernetes 集群初步部署
Kubernetes 集群初步部署 目标 本手册旨在指导您在多台虚拟机上部署一个基础的Kubernetes集群,并安装必要的工具和组件。 准备工作 确保所有虚拟机已经准备好,并且具有足够的资源来运行Kubernetes集群。虚拟机操作系统版本一致,推荐使用R…...
从源码到成品:直播美颜SDK与主播美颜工具的开发全流程
本篇文章,小编将带你深入了解从源码到成品的开发全流程,探讨如何构建一个功能完善的直播美颜SDK与主播美颜工具。 一、需求分析与技术规划 在开发任何工具之前,需求分析是第一步。在美颜工具的开发过程中,需要明确以下几点&…...
AMD EPYC 9004服务器内存配置深度分析:为何全通道填充是关键?
在一次技术沟通中,客户询问在部署AMD EPYC 9004服务器时,是否应该完全填充内存通道? 考虑到AMD正在用5年的更新周期替换其AMD EPYC 7002 “Rome”和Cascade Lake一代的服务器,他们认为通过减少内存插槽的填充,可以节省…...
redis的事务与管道有什么不同?
Redis 的事务(MULTI/EXEC)和管道(PIPELINE)都是为了执行多条命令,但它们的工作原理和目标不同。以下是两者的详细对比。 1. Redis 事务 (MULTI/EXEC) 特点: 事务的本质:Redis 事务是一组命令的…...
Redis 配置
一、关系型数据库与非关系型数据库 1. 关系型数据库 关系型数据库是一种结构化数据库,基于关系模型(二维表格模型),适合记录数据。通过 SQL(结构化查询语言)进行数据的检索和操作。主流的关系型数据库包括…...
【Qt笔记】QTableWidget控件详解
目录 引言 一、QTableWidget的特点 二、QTableWidget基础 2.1 引入QTableWidget 2.2 基本属性 三、代码示例:初始化QTableWidget 四、编辑功能 4.1 设置单元格为只读 4.2 响应内容更改 五、选择模式 六、样式定制 七、与其他控件的交互 7.1 在单元格…...
高低压配电系统中电弧光的危害有多大?
摘要 故障电弧是一种常见的电气故障现象,尤其在配电系统中,可能对设备安全和电力供应造成严重影响。本文旨在探讨故障电弧对配电系统的危害,并提出相应的预防措施,以增强系统的可靠性和安全性。通过对故障电弧的形成机制、危害分…...
安宝特案例 | AR如何大幅提升IC封装厂检测效率?
前言:如何提升IC封装厂检测效率? 在现代电子产品的制造过程中,IC封装作为核心环节,涉及到复杂处理流程和严格质量检测。这是一家专注于IC封装的厂商,负责将来自IC制造商的晶圆进行保护、散热和导通处理。整个制程繁琐…...
QGIS 如何连接空间库,并实时编辑空间表?编辑后库表如何刷新,保证是最新数据?
文章目录 一、什么是 qgis?二、qgis 如何连接数据库三、实时编辑空间表四、编辑后库表如何刷新,保证是最新数据?五、总结 一、什么是 qgis? QGIS(原称Quantum GIS)是一个用户界面友好的开源桌面端软件&…...
CleanClip for mac(苹果电脑剪切板管理器)
CleanClip 是一款为 Mac 设计的强大剪贴板管理工具,它能够显著提升你的工作效率和生产力。无论是在日常办公中还是进行创意设计,CleanClip 都能帮助你更轻松地管理和使用剪贴板内容。让我们一起来探索一下这个功能丰富的软件吧! 下载地址&am…...
嵌入式栈溢出怎么办?
在写文件的时候,因为把FATFS这些数据结构定义在了函数里,所以栈溢出了,我把比较大的数据结构放在全局变量上,就没事了.目前仅测试阶段,也可以放在堆里.不用的时候释放掉,减少耦合度.或者加static....
工厂安灯系统在优化生产流程上的优势
工厂安灯系统通过可视化的方式,帮助工厂管理者和操作工人及时了解生产状态,快速响应问题,从而优化生产流程。 一、安灯系统实时监控与反馈 安灯系统的核心功能是实时监控生产线的状态。通过在生产现场设置灯光、显示屏等设备,工人…...
【Kubernetes】(K8S)彻底卸载详细教程
以下全部操作都是使用root用户进行(非root用户可以使用sudo),并且全部命令都需要在Kubernetes集群的所有节点分别执行: 第一步、停止K8S 所有节点执行: 1 2 3 systemctl stop kubelet systemctl stop etcd systemct…...
web基础之文件上传
1.下载安装 下载地址 链接:百度网盘-链接不存在 提取码:jhks 安装 直接把他放在phpstudy的WWW目录中。(phpstudy的下载安装,可以自行百度一下) 打开 访问地址:127.0.0.1/upload-labs 问题 这里可能…...
解决“找不到msvcp140.dll无法继续执行代码”问题:技术困境与解决方案
在现代计算机技术的发展中,软件依赖性问题日益凸显,其中“找不到msvcp140.dll无法继续执行代码”错误尤为常见。本文将从技术背景、问题成因、解决方案及预防措施四个方面,深入探讨这一技术困境,旨在为读者提供全面的理解和有效的…...
智能赋能,Vatee万腾平台助力企业升级新高度
在当今这个日新月异的数字时代,智能技术的飞速发展正以前所未有的力量重塑着各行各业的面貌。作为这一变革浪潮中的佼佼者,Vatee万腾平台凭借其卓越的智能赋能能力,正引领众多企业迈向转型升级的新高度,开启了智能化发展的新篇章。…...
ceph-radosgw 手动安装教程以及安装问题解决办法
一、环境 操作系统版本:Ubuntu20.04 x86_64 ceph版本:ceph version 15.2.17 (8a82819d84cf884bd39c17e3236e0632ac146dc4) octopus (stable) radosgw版本:15.2.17 二、ceph-radosgw 安装步骤 ceph官方英文版教程,写了个大概步骤…...
PageRank算法
一.定义-迭代算法 输入:含有 n n n个结点的有向图,转移矩阵 M M M,阻尼因子 d d d,初始向量 R 0 R_0 R0,计算精度 ϵ \epsilon ϵ 输出:有向图的PageRank向量 R R R (1)令 t 0 t0 t0 (2)计算 R t 1 d M R t 1 − d n 1 R_{t1} dMR_t \frac{ 1 - d }{ n} 1 Rt1dMRt…...
YOLOv8改进 | 模块缝合 | C2f 融合Self-Calibrated Convolutions丰富特征图【CVPR2020】
秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…...
跨境反向代购淘宝京东商品系统的商品价格详情等数据如何轻松自动化获取?
在跨境电商领域,反向代购系统逐渐成为连接国内外市场的重要桥梁。随着技术的不断发展和市场的日益成熟,如何高效、准确地自动化获取淘宝、京东等电商平台的商品价格、详情等数据,成为跨境反向代购系统开发者必须面对的重要课题。本文将详细介…...
维普检测升级被卡延毕?2026论文降AI急救包:4招人工微调SOP与5大工具硬核横评
论文初稿快要交了,维普却突然搞了个大动作,把系统给升级了。说实话,这事真挺让人头疼的,有人前两天查还是绿的,以为稳了,结果升级完再一测,AI率直接飙红。 但别慌,也别怀疑自己是不…...
从LAS文件到点云地图:手把手教你用LIO-SAM处理武大WHU-TLS隧道数据集
从LAS文件到点云地图:LIO-SAM处理WHU-TLS隧道数据集的实战指南 隧道场景的点云数据处理一直是SLAM领域的技术难点。武汉大学发布的WHU-TLS Tunnel数据集作为全球最大的地面激光扫描基准数据集之一,其隧道环境数据具有典型的封闭空间特征——长条形结构、…...
告别动物实验?AI设计抗体成功率低怎么办?聊聊RFdiffusion的局限与未来优化方向
AI抗体设计的突破与挑战:从RFdiffusion看技术瓶颈与未来路径 当David Baker团队在bioRxiv上发布利用RFdiffusion实现抗体原子级精度从头设计的论文时,整个AI制药领域为之振奋。这项技术突破意味着,我们可能正站在抗体药物研发范式转变的临界点…...
基于Qt框架的PC端学生信息管理系统设计与实现
1. 为什么选择Qt开发学生信息管理系统? 第一次接触学生信息管理系统开发时,我尝试过用Java Swing、Python Tkinter等多种GUI框架,最后发现Qt才是真正的"生产力工具"。Qt的信号槽机制让界面交互变得异常简单,跨平台特性又…...
Legacy iOS Kit终极指南:轻松完成旧款iOS设备降级与恢复
Legacy iOS Kit终极指南:轻松完成旧款iOS设备降级与恢复 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to downgrade/restore, save SHSH blobs, and jailbreak legacy iOS devices 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit Lega…...
ComfyUI-AdvancedLivePortrait插件实战:5分钟搞定静态人像表情动画(附模型下载)
ComfyUI-AdvancedLivePortrait插件实战:静态人像动态化的高效解决方案 想象一下,你手头有一张精美的静态人像照片,却需要在短时间内为它注入生命力——让眼睛自然眨动、嘴角微微上扬,甚至实现头部转动的流畅动画。传统方法可能需要…...
SAP物料账核心:手把手配置OBYC中的GBB与PRD科目(含OMSK评估类关联详解)
SAP物料账核心:手把手配置OBYC中的GBB与PRD科目(含OMSK评估类关联详解) 在SAP系统中,物料账管理是连接物流与财务的关键桥梁。对于财务人员而言,理解物料移动如何触发财务过账,以及如何通过后台配置实现精准…...
MeterSphere接口测试保姆级教程:从环境配置到自动化编排,手把手带你避开那些新手必踩的坑
MeterSphere接口测试实战指南:从零搭建到高效编排的核心技巧 第一次打开MeterSphere的界面时,那些密密麻麻的菜单项和专业术语确实容易让人望而生畏。作为过来人,我完全理解新手面对接口测试工具时的困惑——"全局变量到底该在哪里设置&…...
银河麒麟V4.0.2-sp4系统初始化实战:网络、DNS与软件源一站式配置指南
1. 银河麒麟V4.0.2-sp4网络配置实战 刚装完系统的银河麒麟服务器就像刚交房的新家,水电网络都没通。作为系统管理员,配置网络就是给服务器"通水电"的第一步。我遇到过不少新手直接照着网上教程操作,结果把网卡配置搞乱导致服务器失…...
GEE实战:MODIS NDVI数据高效获取与自动化处理全流程
1. 从零开始认识MODIS NDVI数据 第一次接触遥感数据分析的朋友可能会被各种专业术语搞得晕头转向。别担心,我们先来聊聊这个"MODIS NDVI"到底是什么。简单来说,NDVI(归一化差值植被指数)就像是给地球做体检的"体温…...
