下面是本次部署k8s集群的节点清单:
ip |
hostname |
cpu |
memory |
角色 |
10.68.212.102 |
node2 |
2c |
2g |
work |
10.68.212.103 |
node3 |
2c |
2g |
work |
10.68.212.104 |
node4 |
2c |
4g |
master |
上面是笔者在笔记本电脑通过Oracle VM VirtualBox虚拟化出来的3个节点信息,资源配置较低,这里只是用来模拟生产环境的搭建,正常情况下生产环境每一个节点建议至少是2c4g或以上的配置。注意master角色节点强烈建议给够2c4g,哪怕是学习环境中,否则会由于资源不够的问题频繁重启容器导致整个集群引导启动失败,产生各种坑。
当前部署计划是根据k8s官方的架构将节点划分为master和work,master节点部署后初始化状态的集群运行以下组件:
kube-apiserver
kube-controller-manager
kube-scheduler
etcd
calico
下面是部署成功后master节点运行的Pod列表截图:
work节点部署后初始化状态的集群运行以下组件:
kube-proxy
kubelet
calico
业务容器
k8s默认不会将业务Pod调度到集群控制面板所在的master节点,业务Pod只会被调度到work节点上,这点我们保持官方默认的配置不做修改。
安装Docker容器(所有节点)
k8s是管理容器的,所以要部署k8s前需要先安装好一款容器,这里选择Docker作为容器组件,这里假设你已经了解docker的使用,如果不了解docker那么请先登录docker官方网站或其它书籍学习好docker再来研究k8s,下面是安装docker的命令:
# 先卸载旧的docker:v19.03.8版本
yum remove docker \
docker-client \
docker-client-19.03.8 \
docker-common \
docker-19.03.8 \
docker-19.03.8-logrotate \
docker-logrotate \
docker-engine
# 安装yum-utils和docker依赖
yum install -y yum-utils device-mapper-persistent-data lvm2
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加docker yum repo
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装docker-ce
yum update -y && yum install -y containerd.io-1.2.13 docker-ce-19.03.8 docker-ce-cli-19.03.8
# 配置/etc/docker/daemon.json
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
]
}
EOF
# 创建docker.service.d目录
mkdir -p /etc/systemd/system/docker.service.d
# 刷新system服务配置
systemctl daemon-reload
#