1. 修改主机hostname
hostnamectl set-hostname k8s-master #设置master节点的hostname
hostnamectl set-hostname k8s-slave1 #设置slave1节点的hostname
hostnamectl set-hostname k8s-slave2 #设置slave2节点的hostname
2. 添加hosts解析
cat >>/etc/hosts<<EOF
172.20.10.3 k8s-master (对应主机名的IP地址)
172.20.10.4 k8s-slave1
172.20.10.5 k8s-slave2
EOF
3. 主机配置
1,云主机安装需开放端口
k8s-master节点:TCP:6443,2379,2380,60080,60081UDP协议端口全部打开
k8s-node节点:UDP协议端口全部打开
2,配置iptables
iptables -P FORWARD ACCEPT
3,关闭swap
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
4,关闭selinux和防火墙
sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config
setenforce 0
systemctl disable firewalld && systemctl stop firewalld
5,修改内核参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward=1
vm.max_map_count=262144
EOF
modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
6,配置阿里云yum源
curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum clean all && yum makecache
4.安装docker (所有节点安装)
1,安装最新版本
yum install docker-ce -y
2,配置镜像加速
mkdir -p /etc/docker
vi /etc/docker/daemon.json
{
"registry-mirrors" : [
"https://93oknlkd.mirror.aliyuncs.com"
]
}
3,启动docker
systemctl enable docker && systemctl start docker
5.安装kubeadm,kubectl,kubelet (所有节点安装)
yum install -y kubelet-1.21.2 kubeadm-1.21.2 kubectl-1.21.2 --disableexcludes=kubernetes
systemctl enable kubelet
kubeadm version
6.初始化配置文件
kubeadm config print init-defaults > kubeadm.yaml
vim编辑kubeadm.yaml文件
需要修改一下字段参数:
advertiseAddress: 改为master内网ip地址
imageRepository: registry.aliyuncs.com/google_containers
podSubnet: 10.244.0.0/16 #pod网段在networking里面添加此行参数
提前下载镜像:
kubeadm config images list --config kubeadm.yaml
初始化Master节点:
kubeadm init --config kubeadm.yaml
若初始化成功后,最后会提示如下信息:
接下来按照上述提示信息操作,配置kubectl客户端的认证
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
最后是添加工作节点到集群:
在每台工作节点,执行如下命令,该命令是在kubeadm init成功后提示信息中打印出来的,需要替换成实际init后打印出的命令。
kubeadm join 192.168.12.3:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:1c4305f032f4bf534f628c32f5039084f4b103c922ff71b12a5f0f98d1ca9a4f
7.kubernetes安装完成,最后一步flannel插件安装
1,拉取flannel
wget https://raw.githubusercontent.com/coreos/flannel/2140ac876ef134e0ed5af15c65e414cf2682 7915/Documentation/kube-flannel.yml
2,修改flannel配置文件(190行左右)
args:
- --ip-masq
- --kube-subnet-mgr
- --iface=eth0 # 多网卡机器需要指定内网网卡的名称,默认不指定的话会找第一块网
3,安装flannel网络插件
docker pull quay.io/coreos/flannel:v0.11.0-amd64
kubectl create -f kube-flannel.yml