当前位置: 首页 > news >正文

最新kubernetes搭建(k8s)(已成功搭建)

硬件要求

内存:2GB或更多

CPU: 2核CPU或更多

硬盘: 30GB或更多

本次环境说明:

操作系统:CentOS 7

master: 192.168.100.10

node01: 192.168.100.20

node02: 192.168.100.30

二、环境准备

1.关闭防火墙和selinux

关闭防火墙

systemctl stop firewalld && systemctl disable firewalld && iptables -F

关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0

2. 关闭swap分区

临时关闭

swapoff -a

永久关闭swap

sed -ri 's/.*swap.*/#&/' /etc/fstab

3.修改hosts文件

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

master上

hostnamectl set-hostname master
bashhostnamectl set-hostname node1
bashhostnamectl set-hostname node2
bash

修改本地hosts文件

vi /etc/hosts 添加如下内容

192.168.100.10 master
192.168.100.20 node1
192.168.100.30 node2

3台服务器,确保网络桥接的数据包经过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

 

三、安装docker

1.配置yum源(这里使用阿里云的源)

yum install wget -y 
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

2. 安装docker

yum install docker-ce docker-ce-cli -y

3.编辑docker配置文件

编辑/etc/docker/daemon.json

 

配置 Docker 镜像加速器和设置 Cgroup 驱动:# 配置加速器
cat > /etc/docker/daemon.json << EOF
{"registry-mirrors": ["https://8er86g8v.mirror.aliyuncs.com","https://docker.1panel.live/"],"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

 

3.启动docker服务

systemctl daemon-reload && systemctl enable docker && systemctl start docker

4.安装指定版本的cri-docker

# 下载
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.2/cri-dockerd-0.3.2-3.el7.x86_64.rpm# 安装
rpm -ivh cri-dockerd-0.3.2-3.el7.x86_64.rpm

指定 cri-docker 依赖镜像地址为国内镜像地址:

# 修改配置
vim /usr/lib/systemd/system/cri-docker.service

 

将 ExecStart 配置改成下述这样:

ExecStart=/usr/bin/cri-dockerd --container-runtime-endpoint fd:// --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9

a6076341c0e84a09b378cd4fff95093a.png

重新加载 cri-docker 配置:

systemctl daemon-reload
systemctl enable cri-docker && systemctl start cri-docker

四、安装kubeadm,kubelet和kubectl

 1.配置yum源(这里使用阿里云的源)

 

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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

 

2.安装指定版本的kubeadm,kubelet,kubectl

yum install -y kubelet-1.28.0 kubeadm-1.28.0 kubectl-1.28.0# 设置开机自启
systemctl enable kubelet

由于不知道默认安装的最新版,国内的阿里云镜像站同步会有延迟,导致无法拉取镜像。如果你可以拉去到最新的镜像那请随意。

出现以下即为成功

85e6ba8a4615465ebfe065f37bed6d80.png

按照输出信息

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 接下来去node1,node2执行(指定socket)(--cri-socket=unix:///var/run/cri-dockerd.sock)

kubeadm join 192.168.100.10:6443 --token 6rydpq.tg8bb47i0e0y25z0 --discovery-token-ca-cert-hash sha256:415e1eb8ada3da0581a1ffe7e90e3e29265526e42ea9ba7f682087bff3ae07a0 --cri-socket=unix:///var/run/cri-dockerd.sock

 如果遇到报错

参考以下解决

  1. 启用 kubelet 服务: 运行以下命令以启用并启动 kubelet 服务:

    systemctl enable kubelet.service 
    systemctl start kubelet.service
  2. 设置 IP 转发: 你需要确保 /proc/sys/net/ipv4/ip_forward 的值设置为 1。这可以通过以下命令完成:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    为了确保在系统重启后仍然保持这个设置,你可以在 /etc/sysctl.conf 文件中添加或修改以下行:

    net.ipv4.ip_forward = 1

    然后,应用更改:

    sysctl -p
  3. 再次执行 join 命令: 在执行以上步骤后,重新尝试运行 kubeadm join 命令。

 下载calico插件入股

wget https://xuzhibin-bucket.oss-cn-beijing.aliyuncs.com/k8s/calico.yaml

 下载完毕后,修改 calico.yaml 文件中的 CALICO_IPV4POOL_CIDR 配置,修改成上面 pod-network-cidr 的值:10.244.0.0/16,如下所示:

b51781690951429d9fe4822744a723d9.png

修改完毕后,Master 启动配置文件:

kubectl apply -f calico.yaml

等待3分钟后,查看 Pod 运行状态,发现 pods 全部状态为 Running 成功,这样就说明 k8s 集群部署完毕了!:

kubectl get pods -A -o wide
 kubectl get nodes

 a9bcad4b4f564f3da2ecc5605d525729.png

 

 


http://www.mrgr.cn/news/68041.html

相关文章:

  • 「Mac畅玩鸿蒙与硬件25」UI互动应用篇2 - 计时器应用实现
  • 融合虚拟化与容器技术,打造灵活又安全的AI算力服务
  • CentOS系统查看CPU、内存、操作系统等信息
  • Wecom酱搭建企业微信发送消息
  • 【Python TensorFlow】入门到精通
  • Star Tower:开启数据存储新纪元
  • 【科普】卷积、卷积核、池化、激活函数、全连接分别是什么?有什么用?
  • 【软考】错题总结:1106
  • [CUDA] 判断一个指针是GPU还是CPU
  • 远程控制项目第四天 功能实现
  • Claude Prompt:博弈天平|缘起自李继刚老师的提示词
  • 使用PyQt5设计一个简易计算器
  • 【测试】【Debug】pytest运行后print没有输出
  • CPU Study-Multi-Port Cache
  • golang函数
  • 使用开源Embedding模型嵌入高维空间向量
  • Linux命令--paste
  • 【大模型系列】Grounded-VideoLLM(2024.10)
  • Java学习篇之JVM 调优
  • linux进程的状态之环境变量
  • 【贪心算法】No.1---贪心算法(1)
  • linux 进程调度学习笔记
  • 迭代解法:Jacobi、Gauss-Seidel、SOR
  • CPU Study - Branch Prediction
  • java单例模式
  • 使用LoRA 对千问70B模型进行微调