在 Linux 环境上安装 Kubernetes(k8s)通常涉及以下几个步骤。以下是一个基于 Ubuntu 或 CentOS 的安装指南,使用 kubeadm 工具来简化安装过程。
1. 确保系统环境
- 操作系统:推荐使用 Ubuntu 20.04/22.04 或 CentOS 7/8。
- 硬件要求:
- 至少 2 GB 内存(生产环境建议更多)。
- 至少 2 个 CPU 核心。
- 确保所有节点时间同步(使用 NTP)。
2. 配置主机名和网络
sudo nano /etc/hosts
添加以下内容(根据实际情况修改):
3. 关闭 Swap
Kubernetes 不支持 Swap,需要关闭它:
sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstabKubernetes 需要一个容器运行时(如 Docker 或 containerd)。以下是安装 Docker 的步骤:
安装 Docker
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io配置 Docker 镜像加速(可选)
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://your-mirror-address.mirror.aliyuncs.com"] } EOF sudo systemctl restart docker5. 安装 kubeadm、kubelet 和 kubectl
这些工具是安装和管理 Kubernetes 的核心组件。
添加 Kubernetes APT 仓库
安装工具
sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl # 防止自动更新6. 初始化控制平面(Master 节点)
在主节点上运行以下命令:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
--pod-network-cidr参数需要根据你选择的网络插件调整(例如 Calico 使用192.168.0.0/16)。- 如果需要使用国内镜像,可以添加
--image-repository registry.aliyuncs.com/google_containers。配置 kubectl
初始化完成后,运行以下命令配置
kubectl:mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config7. 安装网络插件
Kubernetes 需要一个网络插件来处理 Pod 网络。以下是安装 Calico 的步骤:
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.4/manifests/calico.yaml8. 加入工作节点
在工作节点上,运行以下命令安装
kubeadm和kubelet,然后执行主节点初始化时输出的kubeadm join命令。例如:kubeadm join 192.168.1.10:6443 --token abcdef.0123456789abcdef \ --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef9. 验证集群状态
在主节点上运行以下命令检查集群状态:
kubectl get nodes输出应显示所有节点的状态为
Ready。10. 部署一个测试应用
验证集群是否正常工作:
kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get pods,svc常见问题
- 防火墙问题:确保防火墙允许以下端口:
通过以上步骤,你就可以在 Linux 上成功安装和运行 Kubernetes 集群了!如果需要更复杂的配置,可以参考 Kubernetes 官方文档。
No comments yet.