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

最新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
bash

hostnamectl set-hostname node1
bash

hostnamectl 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.kler.cn/a/383882.html

相关文章:

  • HTML前端页面设计静态网站-仿百度
  • HT32201 2x15W+30W免电感2.1声道D类音频功放
  • CSS 滚动驱动动画
  • 高效作业之Mybatis缓存
  • .NET 8 中 Entity Framework Core 的使用
  • UML的另一个主角——用例图
  • CSS中的 BFC,是啥呀?
  • NetCore使用Aop和内存缓存对接口、方法进行数据缓存
  • SpringSecurity(三)SpringBoot集成SpringSecurity实现认证授权
  • 软考:性能测试的几个方面
  • 组态软件的概念
  • 基于单片机的变频空调系统设计(论文+源码)
  • 智能网联汽车:人工智能与汽车行业的深度融合
  • 在AI时代,如何解决人的工作岗位被AI替代的问题?
  • 删除 需要来自XXXX的权限才能对此文件夹进行更改 文件的解决办法
  • Flutter自定义矩形进度条实现详解
  • macos中安装和设置ninja
  • 如何推进软硬件协同优化,点亮 AI 新时代?
  • 【人工智能学习推荐框架--及带实例教程】
  • 机器学习—在一个单层中的前向传播
  • 力扣(leetcode)题目总结——哈希表篇
  • 爬虫学习6
  • gerrit 搭建遇到的问题
  • mac 安装 nodemon
  • Day 52 || 739. 每日温度 、 496.下一个更大元素 I 、503.下一个更大元素II
  • 告别生硬电子音,这款TTS软件让语音转换更自然动听