【Kubernetes】如何使用 kubeadm 搭建 Kubernetes 集群?还有哪些部署工具?

使用 kubeadm 搭建 Kubernetes 集群是一个比较常见的方式。kubeadm 是 Kubernetes 提供的一个命令行工具,它可以简化 Kubernetes 集群的初始化和管理。下面是使用 kubeadm 搭建 Kubernetes 集群的基本步骤:

1. 准备工作

确保你的环境中有两台或更多的机器(可以是虚拟机或者物理机),每台机器上安装了 kubeadmkubeletkubectl 工具。通常有一个 Master 节点和多个 Worker 节点。

  • 关闭交换分区:

    bash 复制代码
    sudo swapoff -a

    并且禁用交换分区的自动挂载,在 /etc/fstab 中注释掉 swap 行。

  • 安装 Docker:

    bash 复制代码
    sudo apt-get update && sudo apt-get install -y docker.io
  • 安装 Kubernetes 工具:

    bash 复制代码
    sudo apt-get update && sudo apt-get install -y apt-transport-https
    sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    sudo apt-add-repository "deb https://apt.kubernetes.io/ kubernetes-xenial main"
    sudo apt-get update
    sudo apt-get install -y kubeadm kubelet kubectl

2. 在 Master 节点上初始化 Kubernetes 集群

  • 初始化 Kubernetes 集群:

    bash 复制代码
    sudo kubeadm init --pod-network-cidr=10.244.0.0/16

    --pod-network-cidr 参数是指定 Pod 网络的 CIDR,常见的如 10.244.0.0/16,这个值取决于你使用的网络插件。

  • 初始化成功后,会输出一个 kubeadm join 命令,这个命令需要在 Worker 节点上运行,用来加入到 Kubernetes 集群。

  • 配置 kubectl 访问 Kubernetes 集群:

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

3. 部署网络插件

Kubernetes 集群需要一个网络插件来让 Pod 之间进行通信。常用的网络插件有:

  • Calico
  • Flannel
  • Weave Net

例如,使用 Flannel:

bash 复制代码
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

4. 在 Worker 节点上加入集群

在 Worker 节点上运行 kubeadm join 命令,命令格式类似:

bash 复制代码
sudo kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>

5. 检查集群状态

  • 在 Master 节点上运行以下命令,查看集群的节点状态:

    bash 复制代码
    kubectl get nodes

如果所有节点的状态是 Ready,则表示集群搭建成功。


其他部署工具

除了 kubeadm,还有一些其他常用的 Kubernetes 部署工具和方法:

  1. Kops:用于 AWS 云上快速创建、管理和维护 Kubernetes 集群。
  2. Minikube:适用于本地开发的工具,它在虚拟机中启动一个单节点的 Kubernetes 集群,适合学习和开发。
  3. Rancher:一个集成管理 Kubernetes 集群的工具,提供简单的 UI 界面来管理多集群的 Kubernetes 环境。
  4. Helm :一个包管理工具,用于管理 Kubernetes 中的应用,类似于 Linux 中的 aptyum

https://github.com/0voice

相关推荐
张忠琳8 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
阿里云云原生9 小时前
让 AI Agent 看见正在发生的业务,阿里云 EventHouse 正式商业化
云原生
Elastic 中国社区官方博客10 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
AOwhisky11 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
风曦Kisaki12 小时前
#企业级docker私有仓库构建:harbor仓库与阿里云镜像仓库
阿里云·docker·容器
期待着201312 小时前
docker 安装 ,在centos7.9
运维·docker·容器
微三云 - 廖会灵 (私域系统开发)13 小时前
电商系统从单体到微服务拆分实践:拆什么、怎么拆、拆完后怎么办
微服务·云原生·架构
骑上单车去旅行15 小时前
Docker Compose 命令完全指南:从构建到运维
docker·容器·eureka
前端Baymax16 小时前
K8s PodCrashLoopBackOff假阳性排查
云原生·容器·kubernetes
spider_xcxc16 小时前
K8s 部署学习笔记
docker·容器·kubernetes·云计算·k8s