kubernetes学习(2)--k8s二进制搭建入门---准备基础搭建环境
kubernetes学习(2)--k8s二进制搭建入门---准备基础搭建环境
1、准备基础搭建环境
1)集群网段分配
- 宿主机网段:安装k8s的服务器ip
- Pod网段:k8s Pod的网段,相当于容器的IP
- Service网段:k8s service网段,service用于集群容器通信
需要注意的是这三个网段不能有任何交叉
比如如果宿主机的IP是10.105.0.x
那么service网段就不能是10.96.0.0/12,因为10.96.0.0/12网段可用IP是:
10.96.0.1 ~ 10.111.255.255
所以10.105是在这个范围之内的,属于网络交叉,此时service网段需要更换,
可以更改为192.168.0.0/16网段(注意如果service网段是192.168开头的子网掩码最好不要是12,最好为16,因为子网掩码是12他的起始IP为192.160.0.1 不是192.168.0.1)。
同样的道理,别的网段也不能重复。可以通过http://tools.jb51.neet/aideddesign/ip_net_calc计算:
注意搭配,均为10网段、172网段、192网段的搭配,第一个开头数字不一样就免去了网段冲突的可能性,也可以减去计算的步骤。
网段分配的实际情况:
-
宿主机网段:192.168.XXX.XXX/16
-
Pod网段:172.168.XXX.XXX/12
-
Service网段:10.96.0.0/12
2)虚拟机分配简介
虚拟机名称 | 主机名 | 配置 | 服务 | 备注 | 集群 IP | 虚拟机的NAT IP | 物理机IP |
---|---|---|---|---|---|---|---|
k8s-100-50 | k8s-100-50 | 4C/8G/100G | harbor服务、NFS服务、K8S所有证书管理服务、K8S资源配置清单仓库 | 运维主机 | 192.168.100.50 | 192.168.122.50 | 192.168.1.189 |
k8s-100-51 | k8s-100-51 | 4C/8G/100G | DNS服务 | 192.168.100.51 | 192.168.122.51 | 192.168.1.189 | |
k8s-100-52 | k8s-100-52 | 16C/32G/100G | kube-APIServer、Proxy、etcd、kubelet、ControllerManager、kubelet、kube-proxy | master | 192.168.100.52 | 192.168.122.52 | 192.168.1.189 |
k8s-100-53 | k8s-100-53 | 16C/32G/100G | kube-APIServer、Proxy、etcd、kubelet、ControllerManager、kubelet、kube-proxy | master | 192.168.100.53 | 192.168.122.53 | 192.168.1.189 |
k8s-100-54 | k8s-100-54 | 16C/32G/100G | kube-APIServer、Proxy、etcd、kubelet、ControllerManager、kubelet、kube-proxy | master | 192.168.100.54 | 192.168.123.54 | 192.168.1.192 |
k8s-100-55 | k8s-100-55 | 16C/32G/100G | kubelet、kube-proxy | node | 192.168.100.55 | 192.168.122.55 | 192.168.1.193 |
k8s-100-56 | k8s-100-56 | 16C/32G/100G | kubelet、kube-proxy | node | 192.168.100.56 | 192.168.122.56 | 192.168.1.193 |
kubernetes集群架构图 图中ip为上一次集群ip,实际以表格为主
K8S集群中的VIP设置为 192.168.100.57
2)虚拟机系统优化(在所有节点上操作)
1、在所有的节点上,关闭Selinux
、firewalld
、dnsmasp
和NetWorkManager
服务
# 关闭selinux
setenforce 0
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
# 关闭dnsmasq
systemctl disable --now dnsmasq
# 关闭NetworkManager
systemctl disable --now NetworkManager
2、修改主机名
sudo hostnamectl set-hostname k8s-100-50.host.com
sudo hostnamectl set-hostname k8s-100-51.host.com
sudo hostnamectl set-hostname k8s-100-52.host.com
sudo hostnamectl set-hostname k8s-100-53.host.com
sudo hostnamectl set-hostname k8s-100-54.host.com
sudo hostnamectl set-hostname k8s-100-55.host.com
sudo hostnamectl set-hostname k8s-100-56.host.com
3、CentOS7 换一下安装源,换成阿里源,并安装写必要的基础工具
# 使用阿里源
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 常规yum更新
yum update -y
# 安装基础工具
yum install -y yum-utils device-mapper-persistent-data lvm2 epel-release wget net-tools telnet vim tree nmap sysstat lrzsz dos2unix bind-utils
# 配置一下docker安装的源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker- ce/linux/centos/docker-ce.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
4、所有节点关闭swap分区,fstab注释swap
swapoff -a && sysctl -w vm.swappiness=0
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
5、所有节点同步时间
安装ntpdate服务
rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
yum install ntpdate -y
所有节点同步时间,时间同步配置如下
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
echo 'Asia/Shanghai' >/etc/timezone
ntpdate time2.aliyun.com
# 在centos中添加定时任务
crontab -e
# 加入到crontab
*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com
所有节点配置Limit
ulimit -SHn 65535
并修改对应的文件
vim /etc/security/limits.conf
# 末尾添加如下内容
* soft nofile 655360
* hard nofile 131072
* soft nproc 655350
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
6、CentOS7 内核升级
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org && \
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm && \
yum --disablerepo=\* --enablerepo=elrepo-kernel repolist && \
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml.x86_64 -y
yum remove kernel-tools-libs.x86_64 kernel-tools.x86_64 -y && \
yum --disablerepo=\* --enablerepo=elrepo-kernel install kernel-ml-tools.x86_64 -y
awk -F \' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg && \
grub2-editenv list && \
grub2-set-default 0
# 重启服务器
reboot
# 查看内核是否升级成功
uname -r
7、为了方便,设置运维主机(192.168.100.50)免密登录
ssh-keygen -t rsa
# Master01配置免密码登录其他节点
for i in k8s-100-50 k8s-100-51 k8s-100-52 k8s-100-53 k8s-100-54 k8s-100-55 k8s-100-56; do ssh-copy-id -i /root/.ssh/id_rsa.pub $i;done
目前为止,基础的服务器优化步骤已经完成。
更多推荐
所有评论(0)