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

kubernetes 集群搭建(kubeadm方式)

随着容器技术的兴起,Kubernetes作为容器编排领域的事实标准,受到了越来越多开发者的关注和使用。kubeadm是Kubernetes官方提供的一个工具,用于简化Kubernetes集群的部署过程。本文将详细介绍如何使用kubeadm搭建一个Kubernetes集群。

一、环境准备

2.1 硬件环境

  • 至少需要两台机器(一台作为Master节点,另一台或更多作为Worker节点),每台机器建议配置至少2GB RAM和2 CPU核心。

2.2 软件环境

  • 操作系统:支持的操作系统包括Ubuntu、CentOS等主流Linux发行版。

  • Docker:Kubernetes默认使用Docker作为容器运行时。需要在每个节点上安装最新版本的Docker。

2.3 网络配置

  • 所有节点之间需要能够互相通信,最好是在同一个局域网内。

  • 根据实际情况调整防火墙规则,允许必要的端口访问(如6443, 2379-2380, 10250, 10251, 10252等)。

二、安装kubeadm、kubelet和kubectl

3.1 安装依赖项

在所有节点上执行如下命令以更新软件包列表并安装必要的依赖项:

sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl

对于CentOS用户,则应使用yum:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

3.2 安装Docker

按照官方文档中的指导,在每个节点上安装最新版本的Docker。

3.3 添加Kubernetes的APT软件源

在所有节点上执行以下命令,添加Kubernetes的APT软件源:

curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

3.4 安装kubeadm、kubelet和kubectl

在所有节点上执行以下命令,安装kubeadm、kubelet和kubectl:

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

三、初始化Kubernetes主节点

4.1 初始化集群

在主节点上执行以下命令初始化集群:

sudo kubeadm init \
  --apiserver-advertise-address=<主节点IP> \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version $(kubeadm version -o short) \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --cri-socket unix:///var/run/cri-dockerd.sock

4.2 设置kubectl访问权限

初始化完成后,执行以下命令设置kubectl的配置:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4.3 安装Pod网络插件

在主节点上执行以下命令,安装Pod网络插件:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

四、加入工作节点

5.1 获取加入命令

在主节点上执行以下命令,获取加入工作节点的命令:

kubeadm token create --print-join-command

5.2 在工作节点上执行加入命令

在工作节点上执行主节点上获取的加入命令,例如:

sudo kubeadm join <主节点IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

五、验证集群状态

6.1 查看节点状态

在主节点上执行以下命令,查看节点状态:

kubectl get nodes

如果所有节点都显示为Ready状态,说明集群搭建成功。

6.2 查看Pod状态

在主节点上执行以下命令,查看Pod状态:

kubectl get pods --all-namespaces

如果所有Pod都显示为Running状态,说明集群运行正常。

六、结语

感谢您的阅读!如果您对 Kubernetes 或者 kubeadm 方式搭建集群有任何疑问或见解,欢迎继续探讨。


http://www.kler.cn/a/539207.html

相关文章:

  • JavaScript:||=的写法作用
  • git如何把多个commit合成一个
  • apache-poi导出excel数据
  • Expo运行模拟器失败错误解决(xcrun simctl )
  • 程序诗篇里的灵动笔触:指针绘就数据的梦幻蓝图<8>
  • 【C++】命名空间
  • BUUCTF_[RoarCTF 2019]Easy Calc(RCE/waf绕过/PHP字符串解析特性/代码审计)
  • webpack配置之---入口
  • 基于深度学习的视觉检测小项目(十八) 图像标注界面的初步规划
  • 深入浅出:机器学习的全面解析
  • 离散型变量的 PSI-群体稳定性指标计算
  • C# 创建 Windows 应用程序教程
  • 辛格迪客户案例 | 安领生物医药(苏州)有限公司电子合约系统(eSign)项目
  • 洛谷P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值
  • 李飞飞团队 S1 与 DeepSeek R1 技术对比
  • 基于Python实现的完整解决方案,用于对包含四个类别的1500张图像数据集进行分割、训练模型,并提供简易前端和可视化结果
  • Java 网络原理 ⑤-DNS || 以太网
  • 【RocketMQ 存储】- 异步刷盘服务 FlushRealTimeService
  • Python 报错分析:IndexError: list index out of range
  • Node.js 中模块化
  • 什么是Prompt工程?
  • 蓝耘智算平台与DeepSeek R1模型:推动深度学习发展
  • 企业如何利用DeepSeek提升网络安全管理水平
  • 【JAVAFX】textarea插入数据后滚动条自动到底部
  • 量化交易数据获取:xtquant库的高效应用
  • Transformer中的嵌入位置编码