引言
k8s学习中,我们一直用的是本地docker中提供的k8s组件。这种方式其实就是一个单节点的k8s,只能在学习中使用,一般线上环境我们要么选择云商的k8s服务,要么多机器自己搭建k8s集群。这里,我们本地学习下k8s的搭建过程。本次搭建过程使用rancher搭建,简单快捷(对比二进制搭建来说)。
准备
准备三台主机用于部署k8s(node1:10.15.0.11, node2:10.15.0.12,node3:10.15.0.13),准备一台主机用于部署rancher(10.15.0.10),总计四台服务器
注意:
我启动的是centos虚拟机
修改ip方法:
cd /etc/sysconfig/network-scripts/ vi ifcfg-ens160 #修改对应ip为你想要的ip地址,并保存,并且将BOOTPROTO对应的值改成static sudo systemctl restart network #刷新网络服务 ip addr #查看你修改的ip是否生效
所有主机全部配置内核转发功能
sudo vi /etc/sysctl.conf # sysctl settings are defined through files in # /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/. # # Vendors settings live in /usr/lib/sysctl.d/. # To override a whole file, create a new file with the same in # /etc/sysctl.d/ and put new settings there. To override # only specific settings, add a file with a lexically later # name in /etc/sysctl.d/ and put new settings there. # # For more information, see sysctl.conf(5) and sysctl.d(5). #加入下面这行命令 net.ipv4.ip_forward = 1 #执行使之生效,看到我们刚才的配置出现证明生效,如果没有生效检查内核版本是否支持IP 转发功能 sudo sysctl -p
rancher服务器准备
安装docker环境
部署rancher
- 启动rancher容器
#这里操作都是rancher服务器上,也就是10.15.0.10
#创建目录保存rancher数据
mkdir -p /opt/data/rancher_data
#启动rancher镜像,这里用的比较新的镜像,可以去github rancher仓库查看
docker run -d --privileged -p 80:80 -p 443:443 -v /opt/data/rancher_data:/var/lib/rancher --restart=always --name rancher-2.7.5 rancher/rancher:v2.7.5
可以看到页面是这样的,然后根据它的提示进入系统
部署K8S集群
点击create创建一个集群
下拉到最下面选择custom自定义
填写集群名称,其他暂时默认
首先配置k8s的控制节点,这里我们选择node1(10.15.0.11)作为k8s集群的控制节点。那么,如图中step1中下面全部勾选,step2中要把跳过ssl勾选(这一步不是必须,这里只是演示),然后把下面的命令复制到node1中执行即可。
注意:这里的命令依赖OpenSSL工具,所以需要你现在服务器上下载好
配置剩余的工作节点,在step1中只勾选worker选项,step2中勾选跳过ssl。然后复制下面命令在node2,node3中执行即可。
然后等待集群自己配置即可。如果中间出错,可以在控制台将集群删除,然后重新创建,重复上述步骤即可
自此,已经部署完一个可用的k8s集群了。