CentOS Linux release 7.9.2009 (Core)
Linux valen 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
本文的环境以模拟集群环境为主,不同的是只安装了基本软件,docker之类的都没有安装,所以较为纯净,干扰比较少,在集群中安装遇到的问题与不同在本文最后总结。
第 4 部分为记录,可以忽略。
目标:安装kubernetes v1.18.8。
要求:在安装全过程中集群不能联网,集群内的各个节点是互通的;个人电脑是可以联网的,可以单向ping通集群内mu01。
集群的hosts以及hostname文件都已经配置完毕。
集群情况:
mu01 192.168.37.131
cu01 192.168.37.129
cu02 192.168.37.130
个人主机(valen)与集群不在同一个网段,但是可以ping通mu01,集群内的节点都ping不同valen。
使用kubeadm来安装,因为它简单;使用yum来离线安装软件包;为docker搭建本地镜像源
#所有主机执行
systemctl stop firewalld
systemctl disable firewalld
#所有主机执行
swapoff -a
cp /etc/fstab /etc/fstab_bak
cat /etc/fstab_bak | grep -v swap > /etc/fstab
#所有主机执行
sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config
setenforce 0
mu01执行
在/etc/sysctl.conf末尾追加如下内容:
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
接着执行 sysctl -p 生效
valen执行
(1) 配置docker-ce源
sudo yum-config-manager \
--add-repo \
https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
(2) 查看docker所有版本
[root@k8s-master ~]# yum list docker-ce --showduplicates
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安装的软件包
docker-ce.x86_64 17.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.03.3.ce-1.el7 docker-ce-stable
docker-ce.x86_64 17.06.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.06.2.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.09.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
...
(3) 下载docker-ce
mkdir ~/kubernetes
yum install --downloadonly --downloaddir ~/kubernetes docker-ce-18.06.3.ce-3.el7 --setopt=obsoletes=0
注意:yum只会下载本地不存在的依赖,如果该软件或者其依赖本地已经安装过了,就不会再下载了,所以要保证集群上没有的依赖个人主机上也不能有!
(4) 配置kubernetes源
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
EOF
(5) 下载k8s组件
yum install --downloadonly --downloaddir ~/kubernetes kubeadm-1.18.8
yum install --downloadonly --downloaddir ~/kubernetes kubectl-1.18.8
yum install --downloadonly --downloaddir ~/kubernetes kubelet-1.18.8
yum install --downloadonly --downloaddir ~/kubernetes cri-tools-1.25.0
(6) 删掉多余安装包
进入到~/kubernetes目录下,发现有几个k8s组件的版本不是我们需要的,直接使用rm -rf 把它们都删了(若没有则忽略,一般是有两个,注意别把cri-tools删了)。
如果在安装过程中提示缺少什么依赖或组件,需要自己按照上述方法下载安装包。
(7) 下载nginx
配置下载源:
cat >/etc/yum.repos.d/nginx.repo<<'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
下载安装包:
yum install --downloadonly --downloaddir ~/kubernetes nginx
pcre2-10.23-2.el7.x86_64
将安装包分发到集群的mu01节点上:
scp -r ~/kubernetes mu01:/root/kubernetes
在mu01节点上安装nginx并启动:
cd ~/kubernetes
yum install nginx-1.22.1-1.el7.ngx.x86_64.rpm
systemctl start nginx
建立仓库目录: