centos 7 k8s 快速部署

docker容器虽然功能强大,但是在实际使用的时候,还是有很多不便,比如动态伸缩,自动伸缩,回滚等一系列操作都需要手动去操作部署,k8s就是为了解决容器的管理问题,提高生产运维效率,所以为啥一个logo是船,一个logo是船舵了。

k8s搭建并不难,但是要花上一点时间,我大概是重来了4次左右,每次都会碰到一些问题,比如centos配置不对,k8s和docker版本不对,所以,一定要注意版本信息。

以下是我用到的所有软件的版本信息:

名称

版本

说明

1

vm player

16.2.5

vm的免费版本,满足个人需求

2

centos 7

7-2009

开启了图形桌面

3

docker -ce

20.10.17-3.el7

4

kubernetes

v1.23.6

5

calico

v3.22

1.虚拟机和centos的安装

虚拟机配置2个CPU,2G内存,20G硬盘(k8s最低配置,不然到时候跑不起来)

centos安装没什么难度,注意一下记得开启ens33就好了,不然后面访问不了外网,当然,也可以在安装完以后在配置

然后等着安装完成就可以了!然后选择root账号登录

2.centos网络配置

打开一个Terminal,输入命令

vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp" # ip方式,默认是动态IP,可改为static
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="011f730c-6322-4ebe-aeed-6bbd59a1c6a5"
DEVICE="ens33"
ONBOOT="yes"

我这里因为是虚拟环境,就直接用动态IP。

如果你没有这些信息,表示你安装的时候没有启用ens33,复制上面的配置到Terminal里面,然后按下ESC,输入":" -> "wq",就可以保存了。

service network restart # 重新启动

查看是否可以访问外网,ctrl+c结束

ping www.baidu.com

ps:clear命令可以清空屏幕

更改hosts文件

3. 关闭fireware , selinux,swap

k8s在不关闭linux这几个功能时,将无法启动

systemctl stop firewalld
systemctl disable firewalld #永久关闭
setenforce 0 && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #永久关闭
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab #永久关闭

4.更新centos系统

yum update

5.docker 安装

国外拉取镜像可能会失败,并且慢,更改镜像地址,使用阿里云的镜像

yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6.安装docker containerd

Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等

yum install docker-ce docker-ce-cli containerd.io

7.查找docker-ce的镜像列表

yum list docker-ce --showduplicates | sort -r

找到20.10.17对应的镜像名称20.10.17-3.el7

8.安装docker

yum -y install docker-ce-20.10.17-3.el7 

9.更改docker cgroup驱动

cgroups是一个非常强大的Linux内核工具,他不仅可以限制被namespace隔离起来的资源,还可以为资源设置权重,计算使用量,控制进程启停等

docker 默认的cgroup为cgroupfs,而k8s必须为sysmtemd,如果不更改,安装k8s后会启动失败,这一步很重要。

先在/etc/docker下新建文件daemon.json文件(可以从其他地方复制一个文件过来更改名称)

输入vi /etc/docker/daemon.json,按insert键加入大括号中的内容,

输入":wq"保存并退出

vi /etc/docker/daemon.json
{
    "exec-opts": ["native.cgroupdriver=systemd"]
}

设置docker 开机启动

systemctl enable docker && systemctl start docker

到此docker 就安装完成了

10.k8s安装

配置桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

添加k8s阿里云的镜像地址

cat > /etc/yum.repos.d/kubernetes.repo << EOF
[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

拉取k8s镜像安装

yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6
systemctl enable kubelet

kubeadm 初始化

注意这里一定要加版本号v1.23.6,如果初始化失败了,可以使用kubeadm reset重来,然后再执行kubeadm init

kubeadm init  --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.23.6   --service-cidr=10.1.0.0/16   --pod-network-cidr=10.244.0.0/16

如果出现以下信息,表示初始化成功

配置集群信息

mkdir -p $HOME/.kube


sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config


sudo chown $(id -u):$(id -g) $HOME/.kube/config

11.常用命令

kubectl get nodes 查看k8s集群的所有结点

kubectl get pods --all-namespaces -o wide 查看所有的pod信息

到此k8s环境基本上搭建完成了,但是我们看到master节点状态还是NotReady,并没有启动。然后我们可以看到pod中coredns的状态不是Running。

下一节,我将解决这些问题,并且安装k8s的可视化界面。

如果你觉得我的文章还不错,欢迎关注,转发和评论。大家也可以在微信公众号和今日头条搜索"墨汁软件"关注我哟!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值