一看就会之rehat如何搭建k8s

环境:

Master:10.10.86.12

Node1:10.10.86.13

Node2:10.10.86.14

8c 16G 100G(建议资源调大,后续部署产品比较耗费资源)

1.进入终端配置网络:(必须切换用户为root)

/etc/sysconfig/network-scripts/ifcfg-ens192

Rehat 配置文件位置在:

DEVICE=ens192

ONBOOT=yes  #是否开机自启动该网卡配置

IPADDR=10.10.86.12

NETMASK=255.255.255.0

GATEWAY=10.10.86.254

DNS1=114.114.114.114

TYPE=Ethernet

重启机器后 

Ip a 检查配置:

2.扩展根分区:

刷新分区创建物理卷:

partprobe /dev/sda

pvcreate   /dev/sda

将新分区加入vg

vgextend rhel /dev/sda3

将卷组中的空闲空间扩展到根分区逻辑卷

lvextend -l +100%FREE /dev/rhel/root

刷新根分区

xfs_growfs /dev/rhel/root

查看磁盘使用情况,扩展之前和之后是不一样的

参考文档:https://zhuanlan.zhihu.com/p/83340525

部署k8s:

1.禁用交换内存:(root权限)

swapoff -a

注释掉/etc/fstab最后一行:

禁用SELinux

修改/etc/selinux/config文件,将SELINUX设置为permissive或者disabled,确保重启系统后仍然有效,必须重启!!!!!。

关闭防火墙:

systemctl status firewalld

systemctl stop firewalld

修改hosts文件

设置主机名(不设置也可以,但是要保证主机名不相同)

master上

hostnamectl set-hostname master.local

node01

hostnamectl set-hostname node01.local

node02

hostnamectl set-hostname node02.local

修改本地hosts文件:
一般是/etc/host目录下

10.10.86.12 master.local

10.10.86.13 node01.local

10.10.86.14 node02.local

修改内核参数:

cat > /etc/sysctl.d/k8s.conf << EOF

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

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

net.ipv4.ip_forward = 1

EOF

sysctl --system

echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables

echo "1" > /proc/sys/net/bridge/bridge-nf-call-ip6tables

当无法安装某些软件包时,换镜像源(重点!!!!!):

在vim /etc/yum.repos.d/aliyun_yum.repo

[ali_baseos]

name=ali_baseos

baseurl=centos-stream-9-stream-BaseOS-x86_64-os安装包下载_开源镜像站-阿里云

gpgcheck=0

[ali_appstream]

name=ali_appstream

baseurl=centos-stream-9-stream-AppStream-x86_64-os安装包下载_开源镜像站-阿里云

gpgcheck=0

[kubernetes]

name=Kubernetes

baseurl=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

安装k8s组件

yum install -y kubelet kubeadm kubectl

安装容器:

1.安装依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

2.添加yum源

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

3.安装container

yum install containerd -y

4.生成配置文件

containerd config default > /etc/containerd/config.toml

5.替换 containerd 默认的 sand_box 镜像,编辑 /etc/containerd/config.toml

sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.2"

6.启动服务

systemctl restart containerd && systemctl enable containerd

Bash自动补全:

crictl completion bash > /etc/bash_completion.d/crictl

kubectl completion bash > /etc/bash_completion.d/kubectl

kubeadm completion bash > /etc/bash_completion.d/kubeadm

echo runtime-endpoint: unix:///var/run/containerd/containerd.sock > /etc/crictl.yaml

echo H4sICN/FMWMAAzExAI2RX0uEQBTF3/0UJ/FBgwkfY0NocQ2C1hU3WBYRMRtTMkfGEYLF794dcykjqLc7d879nfsnK5TMnvK+yvJBiUK8dQ1X3HZwMoC6RJLAtE7+bhtlh1282SduOpq48GD2YpAFN5GmN1AVb0kPNKLIGxSDhOhUDwLzKa8BcRA9HD3bmRIk8ZbgKfR1TA6T5mxPWhMeWTLzcmmHycazbCxQt+nKXVlfwJG+CTKCsRfecpkrzvTMbJ63Fi0+2+LN3PC/yX8iy/rnBmDZWkV1YAe9Xm1FW2Vs7tOZSyVXg2zhGhNlNM7nARN6tdUzL/OhUfr5LWxF3+UFie6Q/XpdUNbg752QitoKH9f3YRBvsnC9DfbR2g+81+v+qhbGB4QnwmEcAgAA | base64 -d | zcat > /etc/bash_completion.d/ctr

修改containerd默认配置:

containerd config default > /etc/containerd/config.toml

sed -i 's#SystemdCgroup = false#SystemdCgroup = true#' /etc/containerd/config.toml

pause_image=`kubeadm config images list | grep /pause:`

sed -i "s#sandbox_image = .*#sandbox_image = \"$pause_image\"#" /etc/containerd/config.toml

systemctl restart containerd

安装容器(二选一):

containerd 配置代理(需将下面例子中10.10.8.66:1081可换成可用的代理)

vi /lib/systemd/system/containerd.service

# 在 [Service] 之后加入以下内容

Environment="HTTP_PROXY=http://10.10.8.66:1081/"

Environment="HTTPS_PROXY=http://10.10.8.66:1081/"

Environment="NO_PROXY=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,127.0.0.0/8,registry.dev-rs.com"

执行命令:

systemctl daemon-reload

systemctl restart containerd

安装 CRI-O:(安装过程比较慢)

export VERSION=1.26

sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8/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/CentOS_8/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo

sudo dnf install cri-o

master操作:

sudo systemctl enable kubelet

sudo systemctl start kubelet

初始化master节点:

kubeadm init --pod-network-cidr=192.168.0.0/16

[root@master containerd]#   mkdir -p $HOME/.kube

[root@master containerd]#   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

[root@master containerd]#   sudo chown $(id -u):$(id -g) $HOME/.kube/config

安装网络插件calico:

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

$ kubectl get pods -n kube-system

sudo kubeadm join 10.128.15.228:6443 --token cqb8vy.iicmmqrb1m8u9cob --discovery-token-ca-cert-hash sha256:79748a56f603e6cc57f67bf90b7db5aebe090107d540d6cc8a8f65b7 85de7543

注意:若此处加入集群出现报错:

    [ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist

解决办法:

Node节点执行:

sudo modprobe overlay

sudo modprobe br_netfilter

1) 配置nfs

k8s中使用nfs共享存储(nfs-subdir-external-provisioner)

准备一台ubuntu22.04机器输入如下:

假定nfs服务器IP为10.10.86.226 将 /nfsdata 路径作为共享目录

# 切换到 root 用户执行

apt install nfs-kernel-server -y

systemctl start nfs-kernel-server.service

mkdir -p /nfsdata

# 注意:请替换下面的IP 为两个slave的ip

echo "/nfsdata 10.10.86.13(rw,sync,no_root_squash) 10.10.86.14(rw,sync,no_root_squash)" >> /etc/exports

exportfs -a

showmount -e

分别在两台slave节点执行:

Sudo yum install nfs-utils -y

在部署完成后,在master机器上等待所有pod起来后,可开始部署安装产品。

后续会持续在这个平台做k8s知识分享,大家感兴趣的欢迎关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值