ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

部署k8s集群的方法原理

部署k8s集群的方法原理 K8s集群部署简单说就是先准备环境再搭仓库最后组建集群。先要搭建harbor私有镜像仓库用来存放k8s需要的各类镜像便于本地调取生成证书保证https安全访问所有节点都要导入证书才能正常拉取镜像。然后所有集群主机统一做初始化关闭swap分区节点masternode1node2装好docker容器引擎加载内核网络参数配置域名解析配置K8s软件源。因为新版k8s不再直接支持docker要安装cri‑dockerd充当中间层把docker转换成K8s能识别的接口。所以再在master控制节点安装kubeadm、kubelet、kubectl工作节点node1node2只装kubeadm、kubelet。kubeadm负责集群初始化kubelet是每个节点上的代理跟控制面通信管理容器。master初始化集群指定从本地Harbor拉镜像产出node节点的加入命令node节点拿着命令接入集群此时节点还没就绪。最后部署flannel网络插件让集群各个节点之间可以互相通信所有节点状态变成ready集群就完成了可用。各个主机配置主机名IP地址做用harbor172.25.254.254管理本地镜像仓库k8s-master172.25.254.100控制点k8s-node1172.25.254.10普通工作点k8s-node2172.25.254.20普通工作点一、配置网络harbor主机ip 172.25.254.254二、在harbor主机上构建docker本地仓库需要删除podmanpodman与docker冲突[rootharbor ~]# dnf remove podman -y1、部署docker本地仓库配置docker.repo仓库安装http服务创建 /var/www/html/docker/文件修改http服务的监听端口为4444启动http服务[rootharbor ~]# dnf install httpd -y [rootharbor ~]# mkdir /var/www/html/docker/ -p [rootharbor ~]# vim /etc/httpd/conf/httpd.conf [rootharbor ~]# systemctl enable --now httpd下载安装包 dnf install docker-ce --downloadonly --downloaddir /mnt/--downloadonly 仅下载软件包不安装--downloaddir /mnt/ 指定下载目录/mnt查看安装包下载将/mnt/下以.rpm结尾的文件压缩便于后续安装安装 createrepo仓库/var/www/html/docker/.repodata/修改docker.repo仓库地址测试docker-ce是否安装成功2、安装docker在harbor仓库节点在/etc/sysctl.d/docker.conf文件中添加net.bridge.bridge-nf-call-iptables1内核参数net.bridge.bridge-nf-call-ip6tables1网桥ipv6流量交给ip6tables处理net.ipv4.ip_forward1开启内核路由功能添加br_netfilter模块重启服务/lib/systemd/system/docker.service文件中添加设置开机自启服务3、生成key获得证书4、编辑harbor配置文件需要下载镜像文件harbor-offline-installer-v2.5.4.tgz解压文件到/opt目录下配置harbor私有镜像仓库的https证书密码leeharbor_admin_password: lee查询日志编写启动脚本验证开启服务并查询在网页上登录验证5、启动并验证创建/etc/docker/certs.d/reg.timinglee.org/目录将/data/certs/timinglee.org.crt的内容复制到/etc/docker/certs.d/reg.timinglee.org/ca.crt中在/etc/hosts中添加域名重启docker服务做解析查看登录三、构建部署所需其他主机1、配置所有主机配置网络k8s-master: 172.25.254.100k8s-node1: 172.25.254.10k8s-node2: 172.25.254.20将所有主机上/etc/fstab的swap注释所有主机彼此建立解析测试k8s-node2是否能ping通reg.timing.org利用Ansible部署kubernetes运行环境安装ansible配置所需用户生成ansible的临时配置文件并建立运行环境配置内容创建用户生成ansible的主配置文件并测试利用ansible剧本部署docker利用ansible安装cri-dockerd配置内容测试利用ansible部署k8s软件内容配置安装docker配置可以使用harbor仓库所有主机配置docker加速器docker info测试四、kubernetes的部署1、安装构建kubernetes 集群所需软件master节点安装 kubelet kubeadm kubectl重启服务node节点安装 kubelet kubeadm kubectl重启服务下载kubernetes集群所需镜像上传镜像2 在master中初始化kubernetes集群在master中完成集群初始化结果添加kubernets环境变量到本机添加node节点到本集群测试3安装网络插件查看本地实际镜像版本给两个镜像打harbor私有仓库标签再推送镜像到harbor仓库master执行部署flannel CNI网络修改文件内容部署flannelCNI查看flannelprod状态最后测试查看集群节点状态要改内容所在行的位置
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进