我用的是操作系统是centos7.6,搭建k8s环境需要修改一些基本系统配置
# 关闭Selinux/firewalld systemctl stop firewalld systemctl disable firewalld setenforce 0 sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config # 关闭交换分区 swapoff -a yes | cp /etc/fstab /etc/fstab_bak cat /etc/fstab_bak |grep -v swap > /etc/fstab # 设置网桥包经IPTables,core文件生成路径 echo """ vm.swappiness = 0 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.conf.all.rp_filter = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 """ > /etc/sysctl.conf modprobe br_netfilter sysctl -p # 同步时间 yum install -y ntpdate ntpdate -u ntp.api.bz # 安装内核组件 rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum -y --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml # 启用最新的内核 awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg grub2-set-default 0 grub2-mkconfig -o /boot/grub2/grub.cfg reboot uname -a # 确认内核版本后,开启IPVS cat > /etc/sysconfig/modules/ipvs.modules <<EOF #!/bin/bash ipvs_modules="ip_vs ip_vs_lc ip_vs_wlc ip_vs_rr ip_vs_wrr ip_vs_lblc ip_vs_lblcr ip_vs_dh ip_vs_sh ip_vs_fo ip_vs_nq ip_vs_sed ip_vs_ftp nf_conntrack" for kernel_module in \${ipvs_modules}; do /sbin/modinfo -F filename \${kernel_module} > /dev/null 2>&1 if [ $? -eq 0 ]; then /sbin/modprobe \${kernel_module} fi done EOF chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep ip_vsDocker从1.13版本开始调整了默认的防火墙规则,禁用了iptables filter表中FOWARD链,这样会引起Kubernetes集群中跨Node的Pod无法通信,因此docker安装完成后,还需要手动修改iptables规则。
查看时区
date -R或者timedatectl
修改时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
修改系统语言环境
sudo echo 'LANG="en_US.UTF-8"' >> /etc/profile;source /etc/profile
建议CentOS用户使用非root用户来运行docker,比如我创建并切换yinjj用户进行docker ce安装
# 添加用户(可选) sudo adduser yinjj # 为新用户设置密码 sudo passwd yinjj # 为新用户添加sudo权限 sudo echo 'yinjj ALL=(ALL) ALL' >> /etc/sudoers # 卸载旧版本Docker软件 sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ container* # 定义安装版本 export docker_version=18.06.3 # step 1: 安装必要的一些系统工具 sudo yum remove docker docker-client docker-client-latest \ docker-common docker-latest docker-latest-logrotate \ docker-logrotate docker-engine -y; sudo yum update -y; sudo yum install -y yum-utils device-mapper-persistent-data \ lvm2 bash-completion; # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo; # Step 3: 更新并安装 Docker-CE sudo yum makecache all; version=$(yum list docker-ce.x86_64 --showduplicates | sort -r|grep ${docker_version}|awk '{print $2}'); sudo yum -y install --setopt=obsoletes=0 docker-ce-${version} docker-ce-selinux-${version}; # 如果已经安装高版本Docker,可进行降级安装(可选) yum downgrade --setopt=obsoletes=0 -y docker-ce-${version} docker-ce-selinux-${version}; # 把当前用户加入docker组 sudo usermod -aG docker yinjj; # 编辑systemctl的Docker启动文件和配置文件 sudo sed -i "13i ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT" /usr/lib/systemd/system/docker.service sudo mkdir -p /etc/docker sudo touch /etc/docker/daemon.json sudo cat > /etc/docker/daemon.json <<EOF { "registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com/"], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF # 启动docker sudo systemctl daemon-reload sudo systemctl enable docker sudo systemctl start docker安装k8s集群的方法多达几十种,因为我们已经配置好了系统的基础环境和docker环境,这里博主先介绍一种办法,如果以后有时间还会在这里更新