目标:1个master 2个node
宿主机:3个centos7 parallel 虚拟机
1. 关闭防火墙、关闭iptables规则、seliunx、禁用swap分区,修改liunx内核参数,安装ipvs
关防火墙:
systemctl stop firewalld.service systemctl disable firewalld.service
关iptable:
systemctl stop iptables systemctl disable iptables
关selinux:
# 查看状态 getenforce # 临时关闭 getenforce 0 # 永久关闭 vim /etc/selinux/config SELINUX=disabled
禁用swap分区
# 编辑 /etc/fstab 注释swap行
修改linux内核
# 编辑配置文件 vim /etc/sysctl.d/kubernetes.conf # 文件内容 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 # liunx数据包转发
# 让配置生效
sysctl -p
# 加载网桥过滤模块
modprobe br_netfilter
# 查看是否成功
lsmod | grep br_netfilter
配置ipvs功能
# 安装ipset ipvsadm yum install ipset ipvsadm -y i
# 添加脚本文件
cat <<EOF > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
# 添加权限
chmod +x /etc/sysconfig/modules/ipvs.modules
# 执行
/bin/bash /etc/sysconfig/modules/ipvs.modules
# 查看状态
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
重启服务器
reboot
2. 安装docker与kubernetes组件
# 切换yum镜像源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# 安装docker,使用参数--setopt=obsoletes=0安装指定的docker版本,否则可能安装更高的版本
yum install --setopt=obsoletes=0 docker-ce-18.06.3.ce-3.el7 -y
添加docker配置文件
其中xxxx需要登陆自己的阿里云-镜像服务-镜像加速器获取
mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json {"registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"] }
EOF
systemctl restart docker
systemctl enable docker
docker version
添加kubernetes组件
# 添加配置文件
vim /etc/yum.repos.d/kubernetes.repo
文件内容
[kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
安装kube相关工具
yum install --setopt=obsoletes=0 kubeadm-1.17.4-0 kubelet-1.17.4-0 kubectl-1.17.4-0 -y
配置kubelet的cgroup,编辑/etc/sysconfig/kubelet
KUBELET_CGROUP_ARGA="--cgroup-driver=systemd" KUBE_PROXY_MODE="ipvs"
3. 安装k8s集群
脚本准备镜像
#!/bin/bash images=( kube-apiserver:v1.17.4 kube-controller-manager:v1.17.4 kube-scheduler:v1.17.4 kube-proxy:v1.17.4 pause:3.1 etcd:3.4.3-0 coredns:1.6.5 ) for imageName in ${images[@]};do docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName done
查看下载镜像
docker images
集群初始化,只需要在master节点上进行,确保master节点cpu与内存资源足够s d
kubeadm init \ --kubernetes-version=v1.17.4 \ --pod-network-cidr=10.96.0.0/16 \ --service-cidr=10.96.0.0/12 \ --apiserver-advertise-address=10.211.55.6
配置拷贝
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
网络配置