一、安装一些常用的包
以下列举一些我常用的包:
yum install -y net-tools vim git gcc bash-completion yum-utils device-mapper-persistent-data lvm2
包括以下包:
- vim
- git
- gcc
- net-tools (包括 ifconfig、route、netstat、arp)
- bash-completion
- yum-utils (包括 yum-config-manager)
- device-mapper-persistent-data
- lvm2
keepalived
yum install -y keepalived
systemctl enable keepalived && systemctl restart keepalived
二、配置网络
将 IP 设置为静态 IP
每一台都配置, 修改以下文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
依次修改几台虚拟机:
BOOTPROTO="static"
IPADDR=192.168.1.128 # 依次配置为静态IP
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114
DNS2=1.2.4.8
ZONE=public
GATEWAY 配置为自己的网关, DNS 可以使用运营商的 DNS, 也可使用公共 DNS
配置好之后, 重启网络:
systemctl restart network
主机互信
所有节点配置 hosts,添加主机名,使三台机子能够互通:
$ cat <<EOF >> /etc/hosts
192.168.1.128 k8s-master1
192.168.1.131 k8s-node1
192.168.1.132 k8s-node2
192.168.1.133 k8s-node3
192.168.1.134 k8s-node4
EOF
SSH 证书分发:
ssh-keygen -t rsa
for i in k8s-node1 k8s-node2 k8s-node3 k8s-node4 k8s-node5;do ssh-copy-id -i .ssh/id_rsa.pub $i;done
测试互通性:
ping k8s-master1
# 或
ssh k8s-master1
三、关闭Swap分区
Kubernetes 1.8 开始要求关闭系统的 Swap,如果不关闭,默认配置下 kubelet 将无法启动。
- 方法一,通过 kubelet 的启动参数
--fail-swap-on=false
更改这个限制。 - 方法二,关闭系统的 Swap。
临时关闭:
swapoff -a
永久关闭, 修改 /etc/fstab
文件,注释掉 SWAP 的自动挂载,使用 free -m
确认 swap 已经关闭。
#注释掉swap分区
sed -i 's/.*swap.*/#&/' /etc/fstab
$ cat /etc/fstab
#/dev/mapper/centos-swap swap swap defaults 0 0
$ free -m
total used free shared buff/cache available
Mem: 962 154 446 6 361 612
Swap: 0 0 0
四、禁用 SELinux
临时生效:
setenforce 0
要使其永久生效, 编辑文件 /etc/selinux/config
,将 SELINUX 修改为 disabled,如下:
$ vim /etc/selinux/config
SELINUX=disabled
$ sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
#SELINUX=disabled
五、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
六、其他配置
配置内核参数,将桥接的IPv4流量传递到iptables的链:
$ cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
是配置生效:
$ sysctl --system
* Applying /etc/sysctl.d/k8s.conf ...
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
六、检查 Docker 的安装情况
检查系统是否已经安装 Docker,若已安装不符合规格的版本, 需要将其卸载:
$ rpm -qa | grep docker
docker-client-1.13.1-94.gitb2f74b2.el7.centos.x86_64
docker-common-1.13.1-94.gitb2f74b2.el7.centos.x86_64
docker-1.13.1-94.gitb2f74b2.el7.centos.x86_64
rpm -e docker-client-1.13.1-94.gitb2f74b2.el7.centos.x86_64 docker-common-1.13.1-94.gitb2f74b2.el7.centos.x86_64 docker-1.13.1-94.gitb2f74b2.el7.centos.x86_64
注: 本文撰写时使用的是 Docker version 18.06.1-ce
七、安装Docker
在开始之前,我们先对系统进行一整套的换源操作,以保证后续操作能正常进行。
使用yum-config-manager自动配置:
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
配置好之后,就可以安装Docker了:
yum install -y docker-ce
设置docker镜像源:
$ mkdir -p /etc/docker
$ tee /etc/docker/daemon.json <<-'EOF'
{
"exec-opts":["native.cgroupdriver=systemd"],
"registry-mirrors": [
"https://xxx.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"https://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}
EOF
[root@master01 ~]# systemctl daemon-reload
[root@master01 ~]# systemctl restart docker
docker 基本操作:
systemctl start docker # 启动
systemctl stop docker # 关闭
systemctl enable docker # 开机自启
systemctl restart docker # 重启
docker 基本信息:
docker -v
docker info
docker-compose
yum install -y docker-compose