一、前置条件
在开始安装之前,请确保满足以下前置条件:
-
至少三台服务器(虚拟机或物理机),建议配置为:CPU 2核以上,内存4GB以上,硬盘50GB以上。
-
操作系统:推荐使用Ubuntu 20.04 LTS 或 CentOS 7。
-
所有服务器之间网络互通。
-
具有root权限或sudo权限。
二、环境准备
1. 修改主机名和配置hosts文件
在每台服务器上修改主机名:
bashCopy codesudo hostnamectl set-hostname master sudo hostnamectl set-hostname worker1 sudo hostnamectl set-hostname worker2
编辑/etc/hosts
文件,添加所有节点的IP和主机名映射:
bashCopy codesudo nano /etc/hosts # 添加以下内容 192.168.0.100 master 192.168.0.101 worker1 192.168.0.102 worker2
2. 关闭防火墙和Swap
关闭防火墙:
bashCopy codesudo systemctl stop firewalld sudo systemctl disable firewalld
关闭Swap:
bashCopy codesudo swapoff -a sudo sed -i '/ swap / s/^/#/' /etc/fstab
3. 配置sysctl参数
编辑/etc/sysctl.d/kubernetes.conf
文件,添加以下内容:
bashCopy codesudo nano /etc/sysctl.d/kubernetes.conf # 添加以下内容 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1
使配置生效:
bash Copy code sudo sysctl --system
三、安装Docker
在每台服务器上安装Docker:
bashCopy code# 移除旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 安装必要的软件包 sudo apt-get update sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common # 添加Docker的GPG密钥 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" # 安装Docker sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io # 启动并设置Docker开机自启 sudo systemctl start docker sudo systemctl enable docker
四、安装Kubernetes工具
1. 添加Kubernetes仓库
bashCopy codesudo apt-get update sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list deb https://apt.kubernetes.io/ kubernetes-xenial main EOF sudo apt-get update
2. 安装kubeadm, kubelet 和 kubectl
bashCopy codesudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl
五、部署Kubernetes集群
1. 初始化Master节点
在master节点上执行:
bash Copy code sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,会输出如下内容,请记录下来,将用于worker节点的加入:
plaintext Copy code kubeadm join 192.168.0.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
配置kubectl命令行工具:
bashCopy codemkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
2. 安装网络插件
安装Flannel网络插件:
bash Copy code kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
3. 加入Worker节点
在每个worker节点上执行:
bash Copy code sudo kubeadm join 192.168.0.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
六、验证集群状态
在master节点上执行以下命令,验证所有节点是否加入成功:
bash Copy code kubectl get nodes
输出应类似如下:
plaintextCopy codeNAME STATUS ROLES AGE VERSION master Ready master 10m v1.20.0 worker1 Ready <none> 5m v1.20.0 worker2 Ready <none> 5m v1.20.0
至此,Kubernetes + Docker的安装部署启动已经完成,集群已经可以正常使用。
七、部署示例应用
为了验证集群的功能,部署一个Nginx示例应用:
bashCopy codekubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort
查看服务的NodePort:
bash Copy code kubectl get services
通过任意节点的IP地址加上NodePort访问Nginx服务,验证是否部署成功。
八、管理和维护
1. 查看集群状态
bashCopy codekubectl get nodes kubectl get pods --all-namespaces
2. 更新集群配置
bash Copy code kubectl edit <resource>
3. 资源清理
bash Copy code kubectl delete <resource>
以上步骤包含了从环境准备、安装Docker和Kubernetes、初始化集群到验证和部署示例应用的详细过程