一、基础环境配置
### --- 基础环境配置说明
~~~ 主机信息,服务器IP地址不能设置成dhcp,要配置成静态IP。
~~~ VIP(虚拟IP)不要和公司内网IP重复,首先去ping一下,不通才可用。
~~~ VIP需要和主机在同一个局域网内!
~~~ 公有云的话,VIP为公有云的负载均衡的IP,比如阿里云的SLB地址,腾讯云的ELB地址,
~~~ 注意公有云的负载均衡都是内网的负载均衡。
### --- 网络规划:
~~~ 192.168.1.11 k8s-master01 // 2C4G 40G
~~~ 192.168.1.11 k8s-master-lb // VIP 虚IP不占用机器资源 # 如果不是高可用集群,该IP为Master01的IP
~~~ 192.168.1.14 k8s-node01 // 2C4G 40G
~~~ 192.168.1.15 k8s-node02 // 2C4G 40G
~~~ 10.96.0.0/12 // K8s Service网段
~~~ 172.16.0.0/12 // K8s Pod网段
二、系统基础环境配置
### --- 系统内核版本
[root@k8s-master01 ~]# cat /etc/redhat-release
CentOS Linux release 7.5.1804 (Core)
### --- 配置所有节点hosts文件
[root@k8s-master01 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.11 k8s-master01
192.168.1.11 k8s-master-lb # 如果不是高可用集群,该IP为Master01的IP
192.168.1.14 k8s-node01
192.168.1.15 k8s-node02
### --- CentOS 7安装yum源且安装必备工具
~~~ # 下载centos.aliyun.repo源
[root@k8s-master01 ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2523 100 2523 0 0 11409 0 --:--:-- --:--:-- --:--:-- 11416
~~~ # 安装必备工具
[root@k8s-master01 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
~~~ # 安装docker的yum源
[root@k8s-master01 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
~~~ # 更改为阿里云的yum源地址
[root@k8s-master01 ~]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
~~~ # 安装必备工具
[root@k8s-master01 ~]# yum install wget jq psmisc vim net-tools telnet yum-utils device-mapper-persistent-data lvm2 git -y
~~~ # 所有节点安装基本工具
[root@k8s-master01 ~]# yum install wget jq psmisc vim net-tools yum-utils device-mapper-persistent-data lvm2 git -y
### --- 所有节点关闭firewalld 、dnsmasq、selinux(CentOS7需要关闭NetworkManager,CentOS8不需要)
~~~ # 永久关闭firewalld
[root@k8s-master01 ~]# systemctl disable --now firewalld
~~~ # 永久关闭dnsmasq
[root@k8s-master01 ~]# systemctl disable --now dnsmasq
Failed to execute operation: No such file or directory
~~~ # 永久关闭NetworkManager
[root@k8s-master01 ~]# systemctl disable --now NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
~~~ # 临时关闭selinux
[root@k8s-master01 ~]# setenforce 0
setenforce: SELinux is disabled
~~~ # 永久关闭selinux
[root@k8s-master01 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
[root@k8s-master01 ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
### --- 所有节点关闭swap分区,fstab注释swap
~~~ # 临时关闭swap分区
[root@k8s-master01 ~]# swapoff -a && sysctl -w vm.swappiness=0
vm.swappiness = 0
~~~ # 将swap分区的关闭参数写入配置文件
[root@k8s-master01 ~]# sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
三、基础环境配置:时间同步
### --- 所有节点同步时间:安装ntpdate
~~~ # 安装ntpdate的yum源地址
[root@k8s-master01 ~]# rpm -ivh http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
Retrieving http://mirrors.wlnmp.com/centos/wlnmp-release-centos.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:wlnmp-release-centos-2-1 ################################# [100%]
~~~ # 安装ntpdate
[root@k8s-master01 ~]# yum install ntpdate -y
### --- 设置上海时区
~~~ # 创建上海时区的软连接
[root@k8s-master01 ~]# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
~~~ # 将上海时区设置为默认时区
[root@k8s-master01 ~]# echo 'Asia/Shanghai' >/etc/timezone
### --- 时间同步
~~~ # 同步时间
[root@k8s-master01 ~]# ntpdate time2.aliyun.com
12 May 16:50:02 ntpdate[9845]: step time server 203.107.6.88 offset -28797.476854 sec
~~~ # 将入到crontab中,开机自动同步
[root@k8s-master01 ~]# crontab -e
*/5 * * * * /usr/sbin/ntpdate time2.aliyun.com
四、所有节点配置limit
### --- limit临时生效
~~~ # 临时生效
[root@k8s-master01 ~]# ulimit -SHn 65535
### --- limit永久生效
~~~ # 永久生效,写入配置文件
~~~ 注:末尾添加如下内容
[root@k8s-master01 ~]# vim /etc/security/limits.conf
* soft nofile 655360
* hard nofile 131072
* soft nproc 655350
* hard nproc 655350
* soft memlock unlimited
* hard memlock unlimited
五、kubernetes基础配置:k8s-master01免密登录
### --- k8s-master01免密登录说明
~~~ Master01节点免密钥登录其他节点,安装过程中生成配置文件和证书均在Master01上操作,
~~~ 集群管理也在Master01上操作,
~~~ 阿里云或者AWS上需要单独一台kubectl服务器。
### --- k8s-master01密钥配置如下:
~~~ # k8s-master01上配置生成秘钥
[root@k8s-master01 ~]# ssh-keygen -t rsa
~~~ # k8s-master01配置免密码登录其他节点
[root@k8s-master01 ~]# for i in k8s-master01 k8s-node01 k8s-node02;do ssh-copy-id -i .ssh/id_rsa.pub $i;done
六、所有节点升级系统并重启,此处升级没有升级内核,下节会单独升级内核:
### --- CentOS7需要升级,CentOS8可以按需升级系统
[root@k8s-master01 ~]# yum update -y --exclude=kernel* && reboot