Kubernetes (K8s) 集群的部署可以使用多种方式,根据集群规模、环境和需求的不同选择适合的部署方法。以下是几种常见的 Kubernetes 集群部署方式及其步骤。

使用 kubeadm 部署 Kubernetes 集群

kubeadm 是一个用于快速部署 Kubernetes 集群的工具,适合测试和生产环境。

1. 环境准备
  • 至少 2 台机器,一台作为 Master 节点,其他作为 Worker 节点
  • 操作系统:Ubuntu 20.04 或 CentOS 7
  • 每台机器需要至少 2 GB 内存、2 个 CPU 和 10 GB 磁盘空间
  • 每台机器上安装 Docker
  • 禁用交换分区
2. 安装 kubeadm、kubelet 和 kubectl

在每台机器上执行以下命令:

# 更新包列表
sudo apt-get update

# 安装依赖
sudo apt-get install -y apt-transport-https ca-certificates curl

# 添加 Kubernetes 包的 GPG 密钥
sudo curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

# 添加 Kubernetes 仓库
sudo bash -c 'cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF'

# 更新包列表
sudo apt-get update

# 安装 kubelet、kubeadm 和 kubectl
sudo apt-get install -y kubelet kubeadm kubectl

# 设置 kubelet 开机启动
sudo systemctl enable kubelet && sudo systemctl start kubelet
3. 初始化 Master 节点

在 Master 节点上执行:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

成功后,按照输出的提示配置 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. 部署网络插件

以 Flannel 为例,在 Master 节点上执行:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
5. 添加 Worker 节点

在每个 Worker 节点上执行 kubeadm join 命令。该命令在 Master 节点初始化时输出,类似于:

sudo kubeadm join <master-ip>:<port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
6. 验证集群

在 Master 节点上执行:

kubectl get nodes

你应该能看到所有节点(Master 和 Worker)都已准备就绪。

使用 Minikube 部署单节点 Kubernetes 集群

Minikube 适合在本地测试和开发 Kubernetes 环境。

1. 安装 Minikube

根据操作系统下载并安装 Minikube:

# 下载 Minikube 可执行文件
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

# 将 Minikube 安装到系统路径
sudo install minikube /usr/local/bin/
2. 启动 Minikube
minikube start
3. 验证集群
kubectl get nodes

你应该能看到一个单节点集群。

使用 Kubernetes on AWS (EKS)、Google Cloud (GKE) 或 Azure (AKS)

使用云服务提供商的 Kubernetes 服务,可以简化部署和管理。以下是 AWS EKS 的简要步骤,其他云提供商类似:

1. 创建 EKS 集群

使用 AWS 控制台、CLI 或 Terraform 等工具创建 EKS 集群。

2. 配置 kubectl

下载并配置 AWS CLI:

aws eks --region <region> update-kubeconfig --name <cluster-name>
3. 验证集群
kubectl get nodes

你应该能看到 EKS 集群中的节点。

结论

Kubernetes 提供了多种部署方式,可以根据需求选择适合的方法。在生产环境中,建议使用 kubeadm、EKS、GKE 或 AKS 等工具,以确保集群的高可用性和易管理性。对于本地开发和测试,Minikube 是一个简单而有效的选择。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐