单控制平面不符合 HA 要求,但用于开发/测试环境不会有任何问题,如果资源足够的话(10台以上服务器,3台用于APIserver、3台用于 etcd 存储、至少3台用于工作节点、1台作为负载均衡),可以部署多控制平面的高可用集群环境。下面是高可用集群拓补结构,供参考:
安装步骤其实大同小异,高可用多了几个步骤,安装时可参看官网文档,也比较好操作。本文着重记录单控制平面K8S集群安装步骤。
一、准备工作硬件资源要求,4核心以上CPU,8GB以上内存,所有服务器间网络正常通信,Ubuntu 16.04 以上或 CentOS 7以上版本操作系统,一台服务器作为控制平面节点,若干服务器作为工作节点,我这里准备了4个工作节点。大致信息如下:
名称 CPU 内存 IP OS 安装 用途CPN-1 4U 8GB 10.163.10.6 ubuntu18.04 docker , kubeadm, kubelet , kubectl Control Plane Node
WN-1 4U 8GB 10.163.10.7 ubuntu18.04 docker , kubeadm, kubelet Worker Node
WN-2 4U 8GB 10.163.10.8 ubuntu18.04 docker , kubeadm, kubelet Worker Node
WN-2 4U 8GB 10.163.10.9 ubuntu18.04 docker , kubeadm, kubelet Worker Node
WN-2 4U 8GB 10.163.10.10 ubuntu18.04 docker , kubeadm, kubelet Worker Node
安装 docker
K8S 支持多种容器运行时环境,这里选择 docker 作为运行时环境,首先为所有节点服务器安装 docker,目前 kubernetes 最新版(v1.15.2) 可以完全兼容支持的 docker 最高版本为 v18.06,所以这里安装 v18.06 这个版本。
参考 官网文档。
如果因网络环境原因从官网仓库安装速度较慢,可以使用阿里云镜像仓库安装,具体步骤如下:
# step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 2: 安装GPG证书 curl -fsSL | sudo apt-key add - # Step 3: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] $(lsb_release -cs) stable" # Step 4: 更新并安装 Docker-CE sudo apt-get -y update # 选择安装版本,这里选择 18.06.3 apt-cache madison docker-ce # sudo apt-get -y install docker-ce=[version] sudo apt-get -y install docker-ce=18.06.3~ce~3-0~ubuntu 后续操作** 1、当前用户加入"docker"用户组**
$ sudo usermod -aG docker $USER***2、 配置 cgroup 驱动为 systemd
# 创建文件 /etc/docker/daemon.json ,内容如下: { "exec-opts": ["native.cgroupdriver=systemd"] } # 重启服务生效配置 sudo systemctl daemon-reload sudo systemctl restart docker.service # 检查配置是否生效 docker info | grep Cgroup # ECHO --- Cgroup Driver: systemd 关闭 swap swapoff -a && sudo sed -i 's/^.*swap/#&/g' /etc/fstab 安装 kubelet kubeadm kubectl由于网络原因,直接 APT-GET 安装可能安装不了,这里需要配置一下镜像仓库。
# 配置阿里云 kubernetes 镜像仓库 $ sudo apt-get update && sudo apt-get install -y apt-transport-https curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add - # 创建文件 /etc/apt/sources.list.d/kubernetes.list, 内容如下: deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main # 安装 kubelet kubectl kubeadm $ sudo apt-get update $ sudo apt-get install -y kubelet kubeadm kubectl # 设置kubelet开机启动 $ sudo systemctl enable kubelet 二、部署控制平面节点