1.查看linux内核版本
uname -r
需大于3.10
本次博主服务器版本cent7.7
2.设置主机名
hostnamectl --static set-hostname k8s-master
3.禁用SELinux
vim /etc/sysconfig/selinux
SELINUX=disabled
4.关闭Swap空间,
修改vi /etc/fstab 注释swap分区
5.新建/etc/docker/daemon.json
cat <<EOF > /etc/docker/daemon.json
{
"registry-mirrors": ["https://cr.console.aliyun.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
重新加载配置
systemctl daemon-reload
重启docker
systemctl restart docker
开机启动
systemctl enable docker
6.配置k8s的yum源x86_64
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
7.配置iptables
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
EOF
生效上述配置
sysctl --system
确认输出都是1
cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
cat /proc/sys/net/bridge/bridge-nf-call-iptables
8.安装kubelet,kubeadm,kubectl
yum install -y kubelet-1.19.3-0 kubeadm-1.19.3-0 kubectl-1.19.3-0
重新加载配置
systemctl daemon-reload
设置kubelet开机自启动
systemctl enable kubelet
查看kubelet日志,此时kubelet无法正常启动,因为还没有初始化
systemctl start kubelet
journalctl -xefu kubelet
9.初始化k8s
kubeadm init --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address=172.16.211.157 --kubernetes-version=v1.19.3 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.1.0.0/16
k8s默认要求2c以上服务器,本次我的服务器只有1c,所以我执行的是
kubeadm init --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address=172.16.211.157 --kubernetes-version=v1.19.3 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.1.0.0/16 --ignore-preflight-errors=NumCPU
apiserver-advertise-address为本机ip, --ignore-preflight-errors=NumCPU是忽略cpu限制,注意最后有join才是初始化成功
此时查看kubelet已经是running了
systemctl status kubelet
修改配置
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
部署CAlico网络
wget https://docs.projectcalico.org/manifests/calico.yaml
kubectl apply -f calico.yaml
10.查看节点状态
kubectl get node