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

使用kubeadm部署Kubernetes(k8s)集群的步骤

使用kubeadm部署Kubernetes集群的步骤

前置准备

  1. 多台Linux服务器(至少1台master和1台worker节点)

    • 推荐操作系统:Ubuntu 20.04/22.04, CentOS 7/8, RHEL 7/8

    • 硬件要求:

      • 2GB以上RAM

      • 2核以上CPU

      • 20GB以上磁盘空间

  2. 所有节点需要

    • 禁用swap:swapoff -a 并注释掉/etc/fstab中的swap行

    • 确保唯一主机名

    • 确保时间同步

    • 确保各节点网络互通

安装步骤

1. 所有节点安装基础软件

bash

# 更新系统
sudo apt-get update && sudo apt-get upgrade -y  # Ubuntu/Debian
# 或
sudo yum update -y  # CentOS/RHEL# 安装必要工具
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common  # Ubuntu/Debian
# 或
sudo yum install -y yum-utils device-mapper-persistent-data lvm2  # CentOS/RHEL

2. 所有节点安装Docker容器运行时

bash

# Ubuntu/Debian
sudo apt-get install -y docker.io
sudo systemctl enable docker && sudo systemctl start docker# CentOS/RHEL
sudo yum install -y docker
sudo systemctl enable docker && sudo systemctl start docker

3. 所有节点安装kubeadm, kubelet和kubectl

bash

# 添加Kubernetes源
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -  # Ubuntu/Debian
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
# 或
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo  # CentOS/RHEL
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF# 安装kube组件
sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl  # Ubuntu/Debian
# 或
sudo yum install -y kubelet kubeadm kubectl  # CentOS/RHEL# 设置开机启动
sudo systemctl enable kubelet

4. Master节点初始化

bash

# 初始化Master节点(替换<master-ip>为你的master节点IP)
sudo kubeadm init --apiserver-advertise-address=<master-ip> --pod-network-cidr=10.244.0.0/16# 初始化完成后会输出加入集群的命令,类似:
# kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash <hash># 配置kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

5. 安装网络插件(CNI)

bash

# 安装Flannel网络插件
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml# 或者Calico
# kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

6. Worker节点加入集群

在每个worker节点上执行master节点初始化时输出的kubeadm join命令:

bash

sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash <hash>

7. 验证集群状态

在master节点上执行:

bash

kubectl get nodes  # 查看所有节点状态
kubectl get pods --all-namespaces  # 查看所有pod状态

可选配置

重置集群(如果需要重新安装)

bash

sudo kubeadm reset
sudo rm -rf /etc/cni/net.d
sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X

生成新的join token(如果原token过期)

bash

kubeadm token create --print-join-command

注意事项

  1. 确保所有节点防火墙/安全组允许以下端口:

    • Master节点:6443, 2379-2380, 10250, 10251, 10252

    • Worker节点:10250, 30000-32767

  2. 生产环境建议:

    • 使用高可用集群(多master节点)

    • 配置持久化存储

    • 设置RBAC权限控制

    • 启用网络策略

  3. 国内用户可能需要配置镜像加速或使用国内镜像源

http://www.xdnf.cn/news/973009.html

相关文章:

  • Linux ELF文件详解:深入理解可执行文件格式
  • 将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
  • Alpine Linux基本介绍与新手使用指南
  • Spring MVC 核心枢纽:DispatcherServlet 的深度解析与实践价值
  • FastAPI 教程:从入门到实践
  • V837s-调整内核dmesg内容ring buffer大小
  • k8s从入门到放弃之Ingress七层负载
  • 字符串序列判定
  • pip install 安装traj_dist库失败
  • PCB设计教程【大师篇】——STM32开发板原理图设计(单片机最小系统)
  • 树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
  • 智能在线客服平台:数字化时代企业连接用户的 AI 中枢
  • 【PCL无法读取点云PLY或者PCD格式】
  • esp32idf 关于SPIRAM的使用
  • 第四章 W55MH32初体验
  • Web后端基础:Maven基础
  • PostgreSQL--安装方法
  • 力扣Hot100每日一题[1,3]
  • 【CF】Day80——Codeforces Round 872 (Div. 2) C⭐D (思维 + 模拟 | 树 + 思维 + 组合数学 + 分数取模)
  • 小天互连IM:信创体系下的安全、高效即时通讯新选择
  • 【小记】2024-2025生物计算类热点问题
  • 方案解读:智慧银行反欺诈大数据管控平台建设方案【附全文阅读】
  • 20、React常用API和Hook索引
  • Memory Repair (三)
  • Java单列模式总结及实现
  • asio之读写
  • 路径规划算法概论:从理论到实践
  • switch选择语句
  • ABB UNITROL 6000 X-power 3BH022294R0103 GFD233A103
  • Python 3.6/3.8版本切换脚本