1. Kubernetes简介
Kubernetes(简称K8s)是一个开源的容器编排平台,用于自动化计算机集群中容器的部署、扩展和管理。它由Google设计,并捐赠给了Cloud Native Computing Foundation进行维护。Kubernetes的主要目标是让容器化应用程序的部署和管理更加高效和自动化。
2. 系统要求
在开始搭建Kubernetes集群之前,需要确保满足以下系统要求:
- 操作系统:CentOS 7.x 或 Ubuntu 16.04/18.04
- 硬件要求:至少2GB内存,至少2vCPU
- 网络要求:所有节点之间网络可达
3. 安装前的准备
3.1 配置主机名
在所有节点上设置主机名,并确保主机名可以解析。
hostnamectl set-hostname <hostname>
3.2 关闭防火墙
关闭或调整防火墙设置,以确保节点之间可以正常通信。
systemctl stop firewalld
systemctl disable firewalld
3.3 关闭SELinux
关闭SELinux,以确保Kubernetes组件可以正常工作。
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
3.4 安装必要的软件包
安装一些必要的软件包,例如epel-release
、tar
、unzip
、curl
等。
yum install -y epel-release tar unzip curl
4. 使用kubeadm搭建K8s集群
4.1 初始化Master节点
在Master节点上执行以下命令,初始化集群。
kubeadm init --pod-network-cidr=10.244.0.0/16
初始化成功后,会输出一个命令,用于将节点添加到集群。
kubeadm join <master-ip>:43 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
4.2 配置kubectl
将Master节点的/etc/kubernetes/admin.conf
文件复制到所有节点上的~/.kube/config
文件中。
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
4.3 安装网络插件
安装一个网络插件,例如Calico或Flannel,以确保Pod之间可以通信。
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
4.4 添加Worker节点
在Worker节点上,执行之前获取的命令,将其添加到集群。
kubeadm join <master-ip>:43 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
5. 验证集群
5.1 验证Master节点
在Master节点上,执行以下命令,查看节点状态。
kubectl get nodes
应该看到所有节点都处于Ready
状态。
5.2 验证Pod
在Master节点上,创建一个Pod,并查看其状态。
kubectl run hello-world --image=nginx
kubectl get pods
Pod应该处于Running
状态。
6. 总结
通过以上步骤,你已经成功搭建了一个Kubernetes集群。你可以继续学习如何部署和管理应用程序,或者尝试其他高级功能,例如服务发现、负载均衡等。