从零开始:Kubernetes 集群的搭建与配置指南,超详细,保姆级教程
Kubernetes(K8s)是一个开源的容器编排平台,用于自动化应用的部署、扩展和管理。本文将详细介绍如何从零开始搭建一个 Kubernetes 集群,并进行基本配置。
环境准备
在开始之前,我们需要准备好以下环境:
- 操作系统:建议使用 Linux 发行版,如 Ubuntu 20.04 或 CentOS 7。
- 服务器:至少有两台 Linux 服务器(可以是物理机或虚拟机),其中一台作为 Master 节点,另外作为 Worker 节点。
- 必要的工具:确保安装了
curl
、apt
(Ubuntu)或yum
(CentOS)、docker
、kubeadm
、kubelet
、kubectl
。
1. 安装 Docker
Docker 是 Kubernetes 的一个重要组成部分,以下为在 Ubuntu 上安装 Docker 的步骤:
# 更新包索引
sudo apt-get update
# 安装某些需要的软件包
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
# 添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 的稳定版本库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 更新包索引
sudo apt-get update
# 安装 Docker
sudo apt-get install docker-ce
# 启动 Docker
sudo systemctl start docker
# 设置为开机自启
sudo systemctl enable docker
2. 安装 Kubernetes 组件
接下来,我们将在所有节点上安装 Kubernetes 的核心组件。
# 添加 Kubernetes 的 GPG 密钥
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
# 添加 Kubernetes 的 APT 仓库
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
# 更新包索引
sudo apt-get update
# 安装 kubelet、kubeadm、kubectl
sudo apt-get install -y kubelet kubeadm kubectl
# 设置为开机自启
sudo systemctl enable kubelet
3. 禁用 Swap
Kubernetes 要求禁用 Swap,请运行以下命令:
sudo swapoff -a
# 为了永久禁用 Swap,编辑 /etc/fstab 文件,注释掉包含 swap 的行
sudo nano /etc/fstab
4. 初始化 Kubernetes 集群
在 Master 节点上运行以下命令进行集群初始化。
sudo kubeadm init --pod-network-cidr=192.168.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
5. 部署 Pod 网络
Kubernetes 需要一个网络插件来管理 Pod 之间的通信。这里我们使用 Calico,部署命令如下:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
6. 加入 Worker 节点
返回到 Master 节点,执行 kubeadm join
命令,以将 Worker 节点加入集群。该命令会在 kubeadm init
的输出中提供。
在 Worker 节点上执行类似下面的命令:
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
7. 验证集群状态
在 Master 节点上,使用以下命令检查集群状态:
kubectl get nodes
如果一切正常,你应该能看到 Master 节点和 Worker 节点的状态为 Ready
。
结尾
到此为止,一个基础的 Kubernetes 集群搭建完成。接下来,你可以根据需要在集群上部署应用程序、设置服务等。以上步骤在大多数情况下都非常可靠,建议在真实环境中部署前进行充分测试。