容器编排引擎Kubernetes 04——安装和配置

113 阅读2分钟

要搭建的目标构架为一个 Master节点和一个Node节点。

image.png

0 环境要求

0.1 硬件要求

序号硬件要求
1cpu至少2核
2内存至少3G
3硬盘至少40G

0.2 系统要求

linux内核版本应在4.0以上

查看linux内核版本

cat /proc/version

image.png

如果低于4.0,则需要进行升级。

  • 配置阿里云yum源
# 1.下载安装wget
yum install -y wget
# 2.备份默认的yum
mv /etc/yum.repos.d /etc/yum.repos.d.backup
# 3.设置新的yum目录
mkdir -p /etc/yum.repos.d
# 4.下载阿里yum配置到该目录中,选择对应版本
wget -O /etc/yum.repos.d/CentOS-Base.repo
http://mirrors.aliyun.com/repo/Centos-7.repo
# 5.更新epel源为阿里云epel源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
# 6.重建缓存
yum clean all
yum makecache
# 7.看一下yum仓库有多少包
yum repolist
yum update
  • 升级系统内核
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
yum --enablerepo=elrepo-kernel install -y kernel-lt
grub2-set-default 0
reboot

升级完成后,再次查看内核版本

cat /proc/version

image.png

1 服务器设置

1.1 添加网桥过滤和地址转发功能

vi /etc/sysctl.conf

在文件末尾添加如下内容

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-arptables = 1

net.ipv4.ip_forward=1

net.ipv4.ip_forward_use_pmtu = 0

生效命令

sysctl --system

查看效果

sysctl -a|grep "ip_forward"

1.2 禁用swap分区

  • 临时关闭

swapoff -a

  • 永久关闭

vi /etc/fstab

注释掉下面的设置

/dev/mapper/centos-swap swap

  • 确认关闭

free -m

若swap行都显示 0 则表示关闭成功

image.png

2 安装Docker

安装yum工具包和存储驱动

yum install -y yum-utils

设置镜像的仓库

#推荐使用国内的,阿里云docker镜像
yum-config-manager \
  --add-repo \
   https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

注意:docker-ce 社区版,docker-ee是企业版,使用社区版足够。

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

在/etc/docker目录下创建daemon.json

{
 "exec-opts": ["native.cgroupdriver=systemd"],
 "registry-mirrors": ["https://registry.docker-cn.com"]
}

启动docker服务

systemctl daemon-reload
systemctl restart docker

如果docker启动失败,如下图

image.png

则需要执行以下指令,修改 daemon.json 文件名

mv daemon.json daemon.conf

然后再重新启动docker

systemctl restart docker

安装后查看版本

docker -v
docker info

设置开机自启

systemctl enable docker && systemctl start docker

3 K8s镜像源设置

创建k8s镜像源文件

vi /etc/yum.repos.d/kubernetes.repo

在镜像源文件中输入如下内容并保存

[kubernetes]

name=Kubernetes

baseurl=mirrors.aliyun.com/kubernetes/…

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=mirrors.aliyun.com/kubernetes/… mirrors.aliyun.com/kubernetes/…

更新并重建缓存

yum clean all
yum -y makecache

4 安装kubeadm、kubelet和kubectl

yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

设置kubelet开机启动

systemctl enable kubelet

5 部署K8s

仅需在master节点上执行

kubeadm init \
 --apiserver-advertise-address=192.168.137.3 \
 --image-repository registry.aliyuncs.com/google_containers \
 --kubernetes-version v1.23.0 \
 --service-cidr=10.96.0.0/12 \
 --pod-network-cidr=10.244.0.0/16 \
 --ignore-preflight-errors=all

6 部署k8s失败的处理

  • 删除初始化过程中产生的临时文件
rm -rf /etc/kubernetes/*
rm -rf ~/.kube/*
rm -rf /var/lib/etcd/*
  • 杀掉占用端口的进程
lsof -i :6443|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10250|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10257|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :10259|grep -v "PID"|awk '{print "kill -9",$2}'|sh