Containerd+Kubernetes搭建k8s集群

虚拟机环境设置,如果不是虚拟机可以忽略不看

1、安装配置containerd

1.1 添加 Kubernetes 官方仓库

安装cri-tools的时候需要用到

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/kubemetes/yum/doc/rpm-package-key.gpg
EOF

1.2 安装cri-tools、containerd

yum -y install containerd.io-1.6.33 cri-tools 

如果报:

在这里插入图片描述
就更换yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

如果报:

在这里插入图片描述
就更换docker源

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

1.3 设置containerd镜像加速

#生成containerd的配置文件
containerd config default > /etc/containerd/config.toml
#编辑配置文件config.toml
vi /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".registry.mirrors] 行下添加内容

[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint=["https://dockerproxy.com", "https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn","https://registry-1.docker.io", "https://hbv0b596.mirror.aliyuncs.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]endpoint=["https://dockerproxy.com", "https://mirror.baidubce.com","https://ccr.ccs.tencentyun.com","https://docker.m.daocloud.io","https://docker.nju.edu.cn","https://docker.mirrors.ustc.edu.cn","https://hbv0b596.mirror.aliyuncs.com", "https://k8s.m.daocloud.io", "https://docker.mirrors.ustc.edu.cn","https://hub-mirror.c.163.com"]

1.4 启动并设置开机自启

systemctl start containerd
systemctl enable containerd

2、安装容器工具

2.1 下载cni-plugins

下载完之后丢到Linux中

2.2 解压并安装

mkdir -p /opt/cni/bin/  
tar -zxvf cni-plugins-linux-amd64-v1.2.0.tgz -C /opt/cni/bin/

3、搭建kubernetes集群

3.1 安装配置kubelet、kubeadm、kubectl

yum install -y kubelet-1.27.6 kubeadm-1.27.6 kubectl-1.27.6

3.2 kubelet启动并设置开机自启

systemctl start kubelet
systemctl enable kubelet

3.3 初始集群master节点

kubeadm init \
--apiserver-advertise-address=10.0.2.5 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.27.6 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16

3.3.1 可能遇见错误 1:/proc/sys/net/bridge/bridge-nf-call-iptables 不存在

  • 原因:
    Kubernetes 要求启用 bridge-nf-call-iptables 以实现容器网络桥接流量通过 iptables 规则(CNI 插件如 Flannel/Calico 依赖此功能)。

  • 解决方法:
    1、加载内核模块并设置参数:

    # 加载 br_netfilter 内核模块 
    sudo modprobe br_netfilter  
    # 临时生效 
    echo 1 | sudo tee /proc/sys/net/bridge/bridge-nf-call-iptables  
    

    2、持久化配置(防止重启失效):

    sudo tee /etc/modules-load.d/br_netfilter.conf  <<EOF 
    br_netfilter 
    EOF 
    sudo tee /etc/sysctl.d/k8s.conf  <<EOF 
    net.bridge.bridge-nf-call-iptables  = 1 
    EOF 
    # 重新加载配置
    sudo sysctl --system  
    

3.3.2 可能遇见错误 2:/proc/sys/net/ipv4/ip_forward 未设置为 1

  • 原因:
    Kubernetes 要求启用 IP 转发(ip_forward=1)以支持 Pod 跨节点通信。

  • 解决方法:
    1、临时启用(立即生效):

    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward 
    

    2、持久化配置:

    sudo tee -a /etc/sysctl.d/k8s.conf  <<EOF 
    net.ipv4.ip_forward  = 1 
    EOF 
    sudo sysctl --system 
    

3.4 根据返回的结果执行对应的命令

在这里插入图片描述

3.4.1 本地执行代码

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

3.4.2 安装Calico网络

3.4.2.1、安装 Tigera 操作符和自定义资源定义
#由于 CRD 包很大,kubectl apply可能会超出请求限制。请改用kubectl create或kubectl replace。
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.3/manifests/tigera-operator.yaml
3.4.2.2、通过创建必要的自定义资源来安装 Calico

1、下载custom-resources.yaml

2、修改pod网段改为我们初始化集群时候设置的10.244.0.0/16
在这里插入图片描述
3、安装 Calico

kubectl create -f custom-resources.yaml

4、确定所有的pod都有运行
在这里插入图片描述

3.4.3 其他的node节点加入集群

kubeadm join 10.0.2.5:6443 --token p9rnu4.7zjncoc2q7abf3st --discovery-token-ca-cert-hash sha256:2c2aba213ad44e2e8f951add165d72629d4807f2d59b7de2bb9c102c660f0f17

由于创建需要时间比较长可以运行watch kubectl get pod -n kube-system -o wide监控创建结果

3.4.4 查看是否加入成功

kubectl get nodes

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/74940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

应用待机分组管控是啥

1. 应用待机群组是啥&#xff1f; Android 9 引入了一个新功能&#xff0c;叫应用待机群组。简单来说&#xff0c;就是根据你最近使用应用的频率和时间&#xff0c;系统会把应用分成不同的“群组”。每个群组的应用能用的系统资源不一样&#xff0c;比如后台任务、闹钟、网络请…

C/C++后端开发面经

字节跳动 客户端开发 实习 一面(50min) 自我介绍是否愿意转语言,是否只愿意搞后端选一个项目来详细谈谈HTTP和HTTPS有什么区别?谈一下HTTPS加密的具体过程&#xff1a; 非对称加密 对称加密 证书认证的方式 非对称加密是为了保证对称密钥的安全性。 对称…

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程(持续更新)

【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】A题解题全流程-思路&#xff08;持续更新&#xff09; 写在前面&#xff1a; 1、A题、C题将会持续更新&#xff0c;陆续更新发布文章 2、赛题交流咨询Q群&#xff1a;1037590285 3、全家桶依旧包含&#xff1a; 代码、…

如何让 history 记录命令执行时间?Linux/macOS 终端时间戳设置指南

引言:你真的会用 history 吗? 有没有遇到过这样的情况:你想回顾某个重要命令的执行记录,却发现 history 只列出了命令序号和内容,根本没有时间戳?这在运维排查、故障分析、甚至审计时都会带来极大的不便。 想象一下,你在服务器上误删了某个文件,但不知道具体是几点执…

Redis缓存异常场景深度解析:穿透、击穿、雪崩及终极解决方案

一、引言 在高并发系统中&#xff0c;缓存承担着流量洪峰的削峰填谷作用。然而当缓存层出现异常时&#xff0c;可能引发数据库级联崩溃&#xff0c;造成系统瘫痪。本文将深入剖析缓存穿透、缓存击穿、缓存雪崩三大典型问题&#xff0c;并提供企业级解决方案。文章包含7种防御策…

Scala 之 正则

regex 函数提取 import scala.util.matching.Regex// 输入表达式 val expression "[a#0, round(a#0, 0) AS round(a, 0)#1, abs(a#0) AS abs(a)#2, len(cast(a#0 as string)) AS len(a)#3]"// 定义一个正则表达式来提取函数名称 val functionPattern: Regex &quo…

CI/CD-Jenkins安装与应用

CI/CD-Jenkins安装与应用 Docker安装Jenkins docker-compose.yaml version: "3.8" # # 自定义网络配置 # networks:cicd:driver: bridgeservices:jenkins:# 尽量使用新版本的Jenkins, 低版本的Jenkins的有些插件使用不了# jenkins/jenkins:lts-jdk17是长期支持版…

验证Linux多进程时间片切换的程序

​​ 一、软件需求 在同时运行多个CPU密集型进程时&#xff0c;需采集以下统计信息&#xff1a; 当前运行在逻辑CPU上的进程ID每个进程的运行进度百分比 实验程序设计要求&#xff1a; 1. 命令行参数 参数说明示例值n并发进程数量3total总运行时长&#xff08;毫秒&…

IvorySQL:兼容Oracle数据库的开源PostgreSQL

今天给大家介绍一款基于 PostgreSQL 开发、兼容 Oracle 数据库的国产开源关系型数据库管理系统&#xff1a;IvorySQL。 IvorySQL 由商瀚高软件提供支持&#xff0c;主要的功能特性包括&#xff1a; 完全兼容 PostgreSQL&#xff1a;IvorySQL 基于 PostgreSQL 内核开发&#xf…

树莓派超全系列文档--(13)如何使用raspi-config工具其二

如何使用raspi-config工具其二 raspi-configPerformance optionsOverclockGPU memoryOverlay file systemFan Localisation optionsLocaleTime zoneKeyboardWLAN country Advanced optionsExpand filesystemNetwork interface namesNetwork proxy settingsBoot orderBootloader…

QT音乐播放器(1):数据库保存歌曲

实现功能&#xff1a;用数据库保存本地导入和在线搜索的歌曲记录 目录 一. 保存本地添加的歌曲 1. 使用QSettings &#xff08;1&#xff09;在构造函数中&#xff0c;创建对象。 &#xff08;2&#xff09;在导入音乐槽函数中&#xff0c;保存新添加的文件路径&#xff0c…

自动化发布工具CI/CD实践Jenkins常用工具和插件的使用

1、安装常用工具 名称版本备注jdkjava8代码打包所需git1.8.3.1maven3.6.3注意配置私服内容nvm0.39.3多Node.js环境管理工具Node.jsv14.18.0 / v16.17.1包管理工具yarn1.22.15包管理工具 1.1 安装jdk Jenkins 需要使用java11 及以上&#xff0c;但是代码打包依赖jdk8&#xff…

shared_ptr和 weak_ptr的详细介绍

关于 shared_ptr 和 weak_ptr 的详细介绍及使用示例&#xff1a; 1. shared_ptr&#xff08;共享所有权智能指针&#xff09; 核心特性 引用计数&#xff1a;记录当前有多少个 shared_ptr 共享同一个对象。自动释放&#xff1a;当引用计数归零时&#xff0c;自动释放对象内存…

Spring AI MCP 架构详解

Spring AI MCP 架构详解 1.什么是MCP? MCP 是一种开放协议&#xff0c;它对应用程序向大语言模型&#xff08;LLMs&#xff09;提供上下文信息的方式进行了标准化。可以把 MCP 想象成人工智能应用程序的 USB-C 接口。就像 USB-C 为将设备连接到各种外围设备和配件提供了一种…

腾讯系AI应用,可以生视频,3D模型...

以下注册手机后就可以使用了。 腾讯智影 智能抹除-在线去水印去字幕-抹除水印字幕-腾讯智影 混元&#xff08;文字&#xff0c;图片生成3D&#xff09; 腾讯混元3D 混元视频&#xff08;文字生成视频&#xff0c;可惜右下角有文字&#xff09; https://video.hunyuan.tencen…

数据结构(并查集,图)

并查集 练习版 class UnionFindSet { public:void swap(int* a, int* b){int tmp *a;*a *b;*b tmp;}UnionFindSet(size_t size):_ufs(size,-1){}int UnionFind(int x){}void Union(int x1, int x2){}//长分支改为相同节点int FindRoot(int x){}bool InSet(int x1, int x2)…

数据结构:探秘AVL树

本节重点 理解AVL树的概念掌握AVL树正确的插入方法利用_parent指针正确更新平衡因子掌握并理解四种旋转方式&#xff1a;左单旋&#xff0c;右单旋&#xff0c;左右双旋&#xff0c;右左双旋 一、AVL树的概念 AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis&…

电源系统的热设计与热管理--以反激式充电器为例

前言 反激电源常用于各种电子设备中&#xff0c;比如充电器、适配器等&#xff0c;它们通过变压器进行能量转换。高温环境可能对电子元件造成影响&#xff0c;特别是像MOSFET、二极管、变压器这样的关键部件&#xff0c;导致效率变低&#xff0c;甚至可能导致功能失效。还有安…

linux课程学习二——缓存

一.文件io与标准io的一个区别 遇到死循环可以ctrl c结束进程 使用printf输出&#xff0c;输出没有问题 用wirte输出&#xff0c;参数1&#xff0c;可以理解为上面介绍的linux标准文件描述符的1&#xff08;STDOUT&#xff09;标准输出&#xff0c;我们加上一个死循环while&…

Kafka中的消息如何分配给不同的消费者?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka中的消息如何分配给不同的消费者&#xff1f;】面试题。希望对大家有帮助&#xff1b; Kafka中的消息如何分配给不同的消费者&#xff1f; 在 Kafka 中&#xff0c;消息是通过 主题&#xff08;Topic&#xff09; 进行组织的&…