关闭每台虚拟机防火墙和seLinux,防止干扰k8s运行,最好清除iptables规则
# 关闭防火墙并且设置开机不启动 systemctl stop firewalld systemctl disable firewalld # 关闭seLinux,getenforce是获取seLinux的状态 # 没有设置过seLinux一般getenforce查询结果为Enforcing,需设置为disable关闭 getenforce # 直接修改文件,改为SELINUX=disabled,重启之后生效 vim /etc/selinux/config # 清除iptables规则 iptables -F
关闭交换分区(k8s1.8版本以上要求必须关闭)以提升性能
# 临时关闭 swapoff -a # 修改/etc/fstab文件永久关闭,将文件中/dev/mapper/centos-swap swap行注释即可,也可以直接运行下面这条命令 sed -i '/swap/ s/^\(.*\)$/#\1/g' /etc/fstab
修改内核参数以满足k8s的运行需求,运行下面的命令
cat <<EOF >> /etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_nonlocal_bind = 1 net.ipv4.ip_forward = 1 vm.swappiness=0 EOF # 重新加载系统参数配置,让上面的修改生效 sysctl -p
安装docker命令
#安装工具包 yum install -y yum-utils #可以使用阿里云镜像替换官方源 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # 指定版本安装docker yum install -y docker-ce-19.03.9 docker-ce-cli-19.03.9 containerd.io # 开启docker服务 systemctl start docker # 设置开机启动 systemctl enable docker # 配置Docker使用systemd作为默认Cgroup驱动,配置之后需要重启docker cat <<EOF > /etc/docker/daemon.json { "registry-mirrors": [ "http://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ], "exec-opts": ["native.cgroupdriver=systemd"] } EOF #重启docker systemctl restart docker
安装k8s
- 1.添加k8s yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
安装kubeadm,kubelet,kubectl(指定版本)
yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
设置kubelet开机自启动
systemctl enable kubelet
安装CoreDNS容器(k8s集群运行时需要CoreDNS提供DNS解析服务)
# 拉取镜像 docker pull coredns/coredns:1.8.4 # 将镜像改名 docker tag coredns/coredns:1.8.4 registry.aliyuncs.com/google_containers/coredns:v1.8.4
master节点初始化
以下操作在master节点进行
- 使用
kubeadm init
命令进行初始化,运行下面的命令之后等待命令跑完
# 记得改变IP,只要改第一行的IP地址,一般改为master节点地址 kubeadm init \ --apiserver-advertise-address=192.168.*.* \ --image-repository registry.aliyuncs.com/google_containers \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16 #--pod-network-cidr=192.168.0.0/16
安装网络插件
安装命令(只要在master节点运行)
flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml