本地模拟生产环境k8s安装部署(一)
在centos中,selinux是“Security Enhanced Linux”的缩写,是安全加强的linux,是一个linux内核模块,也是linux的一个安全子系统;又仔细看了下, 是$OS 这个变量是空值 ,晕啊, 是之前设置了这个值,后面电脑重启后这个值又没有了,设置的时候没有在配置文件持久化。和预想的一样,访问不了 packages.cloud.google.com 网站,安装失败。
一、环境信息
操作系统:centos7.1.1
二、安装kubeadm(参考:安装 kubeadm | Kubernetes)
1、禁用交换分区
修改 /etc/fstab 文件,注释掉 SWAP 的自动挂载(永久关闭swap,重启后生效)
禁用前
sudo vi /etc/fstab
重启
sudo reboot
禁用后
2、允许 iptables 检查桥接流量
检查br_netfilter模块是否已加载,执行 lsmod | grep br_netfilter,发现没有加载,随即显示加载,执行 sudo modprobe br_netfilter
3、为了让你的 Linux 节点上的 iptables 能够正确地查看桥接流量,你需要确保在 sysctl 配置中将 net.bridge.bridge-nf-call-iptables 设置为 1
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
4、检查所需端口(这里需要安装netcat ,安装可以参考之前文章记录下安装netcat工具的步骤_super_1301的博客-CSDN博客)
nc 127.0.0.1 6443
5、安装容器运行时(这里我们使用cri-o ,参考:cri-o/install.md at main · cri-o/cri-o · GitHub)
设置环境变量 export OS=CentOS_7
root权限执行下面命令
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
sudo yum install cri-o , 执行到这竟然报错
后面仔细看了下文档, 在下载repo的时候需要设置VERSION变量
export VERSION=1.24
再次执行下载cri-o 源
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
再次执行
sudo yum install cri-o
还是报错!!!
经过查找得知,是cri-o这个repo,没有下载下来
又仔细看了下, 是$OS 这个变量是空值 ,晕啊, 是之前设置了这个值,后面电脑重启后这个值又没有了,设置的时候没有在配置文件持久化
再次设置环境变量 export OS=CentOS_7
再次执行下载cri-o 源
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
还是没有 !!! ,疯了。
又查了一番,发现是repo源的地址,官网安装手册给的就是错的, 坑啊,按照正确的再次下载
sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:1.24:1.24.1.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable:/cri-o:/1.24:/1.24.1/CentOS_7/devel:kubic:libcontainers:stable:cri-o:1.24:1.24.1.repo
终于下载成功!!!, 不容易
再次执行安装
sudo yum install cri-o
安装又报了另一个错误 ,哎
再次搜索引擎 ,尝试了, 禁用yum使用插件(参考:linux yum install **** 提示:Loaded plugins: fastestmirror_徐先生Paul的博客-CSDN博客)
sudo vi /etc/yum.conf
plugins=1 #改为0,不使用插件
清除缓存并重新构建yum 源
suod yum clean all
suod yum clean dbcache
suod yum makecache
再次安装运行时
sudo yum install cri-o
运行时终于安装成功 !!!
启动运行时 sudo systemctl enable --now crio
验证下是否启动成功
成功!!!
6、安装kubelet kubeadm kubectl
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
# 将 SELinux 设置为 permissive 模式(相当于将其禁用)
解释下什么是selinux
在centos中,selinux是“Security Enhanced Linux”的缩写,是安全加强的linux,是一个linux内核模块,也是linux的一个安全子系统;SELinux主要作用是最大限度地减小系统中服务进程可访问的资源
执行命令前
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
执行以上2个命令后
执行安装软件命令
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
和预想的一样,访问不了 packages.cloud.google.com 网站,安装失败。
网上找了下阿里云镜像的安装方法(参考:kubernetes镜像_kubernetes下载地址_kubernetes安装教程-阿里巴巴开源镜像站)
cat <<EOF | sudo tee /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
再次执行安装命令
sudo yum install -y kubelet kubeadm kubectl
还是报错, 一步一个坑
由于官网未开放同步方式, 可能会有索引gpg检查失败的情况, 这时请用 sudo yum install -y --nogpgcheck kubelet kubeadm kubectl 安装
安装成功 !!! !!!
验证下 kubeadm 是否安装成功
kubeadm 安装成功。
设置开机启动kubelet并且立即启动
sudo systemctl enable --now kubelet
这里看没有 kubelet 进程,查看官网说是 kubelet 现在每隔几秒就会重启,因为它陷入了一个等待 kubeadm 指令的死循环。
由于kubelet 是由systemctl 管理的, 看下当前状态 sudo systemctl status kubelet -l
kubelet 安装和启动成功
验证kubectl 安装是否成功
kubectl 安装成功
至此 kubelet kubeadm kubectl 都已安装成功~~~~~
7、配置 cgroup 驱动程序
cgroup有2种驱动 systemd 和 cgroupfs
在版本 1.22 中,默认是systemd
cgroup是什么,后面单独在研究一篇吧~~~
下一篇开始介绍如何通过kubeadm创建集群了
更多推荐
所有评论(0)