本地模拟生产环境k8s安装部署(一)

参考:生产环境 | Kubernetes

一、环境信息

操作系统: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创建集群了

本地模拟生产环境k8s安装部署(二)_super_1301的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值