k8s v1.30 完整安装过程及CNI安装过程总结

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。


博客内容主要围绕:
       5G/6G协议讲解
       高级C语言讲解
       Rust语言讲解



文章目录

  • k8s v1.30 完整安装过程及CNI安装过程总结
    • 一、演示环境介绍
    • 二、初始环境配置(`每个机器都需要运行`)
      • 2.1 配置主机的hosts文件
      • 2.2 关闭系统的交换空间
      • 2.3 配置内核参数
      • 2.4 安装docker
      • 2.5 安装k8s v1.30
      • 2.6 安装cri-docker
    • 三、创建集群(`在master机器上运行下面的命令`)
    • 四、加入工作节点(`在除master的机器上运行`)
    • 五、安装pod网络calico(`只需在master机器上运行`)

k8s v1.30 完整安装过程及CNI安装过程总结

一、演示环境介绍

主机名IP地址
master172.16.1.1
node1172.16.1.2

二、初始环境配置(每个机器都需要运行

2.1 配置主机的hosts文件

sudo cat > /etc/hosts <<EOF
172.16.1.1 master
172.16.1.2 node
EOF

2.2 关闭系统的交换空间

sudo sed -ri 's/^([^#].*swap.*)$/#\1/' /etc/fstab && grep swap /etc/fstab && swapoff -a && free -h

2.3 配置内核参数

sudo cat >> /etc/sysctl.conf <<EOF
vm.swappiness = 0
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOFsudo cat >> /etc/modules-load.d/neutron.conf <<EOF
br_netfilter
EOFsudo modprobe  br_netfilter
sudo sysctl -p

2.4 安装docker

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose -y
sudo cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
],"exec-opts": ["native.cgroupdriver=systemd"],"data-root": "/data/docker","log-driver": "json-file","log-opts": {"max-size": "20m","max-file": "5"}
}
EOFsudo systemctl restart docker.service
sudo systemctl enable docker.service

2.5 安装k8s v1.30

sudo apt-get update && sudo apt-get install -y apt-transport-httpscurl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key | sudo  gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" | sudo  tee /etc/apt/sources.list.d/kubernetes.listsudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectlsudo systemctl enable kubelet

2.6 安装cri-docker

从* https://github.com/Mirantis/cri-dockerd*下载最新的cri-docker版本,我这里使用的是0.3.15

在这里插入图片描述

因为我的环境是Ubuntu22.04,所以下载了下图中的版本
在这里插入图片描述
运行下面的命令进行下载和安装(注意,如果你下载的版本和我的不一样,要修改第一条命令):

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.15/cri-dockerd_0.3.15.3-0.ubuntu-jammy_amd64.debsudo dpkg -i cri-dockerd_0.3.15.3-0.ubuntu-jammy_amd64.deb

下面我们需要配置一下cri-docker的下载源:

sudo sed -ri 's@^(.*fd://).*$@\1 --pod-infra-container-image registry.aliyuncs.com/google_containers/pause@' /usr/lib/systemd/system/cri-docker.servicesudo systemctl daemon-reload && sudo systemctl restart cri-docker && sudo systemctl enable cri-docker

三、创建集群(在master机器上运行下面的命令

生成配置文件

kubeadm config print init-defaults > myCluster.yaml

根据生成的myCluster.yaml配置文件,配置集群参数:

......
localAPIEndpoint:# 修改成本master的ipadvertiseAddress: 172.16.1.1bindPort: 6443
nodeRegistration:# 修改成cri-dockerd的sockcriSocket: unix:///run/cri-dockerd.sockimagePullPolicy: IfNotPresent# 修改成本master的主机名name: mastertaints: null
---
......
etcd:local:# 修改etcd的数据目录dataDir: /data/etcd
# 修改加速地址
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
# 修改成具体对应的版本好
kubernetesVersion: 1.30.1
# 如果是多master节点,就需要添加这项,指向代理的地址,这里就设置成master的节点
controlPlaneEndpoint: "master:6443"
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12# 添加pod的IP地址podSubnet: 10.244.0.0/16 # 在最后添加上下面两部分
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd 

改好配置文件之后初始化集群

kubeadm init --config=myCluster.yamlmkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

四、加入工作节点(在除master的机器上运行

如果你的机器之前加入过一个集群,可以运行下面的命令删除之前的配置信息:
kubeadm reset --cri-socket unix:///run/cri-dockerd.sock

在master节点上运行下面的命令获取加入集群的命令:

kubeadm token create --print-join-command

将返回的命令加上 “–cri-socket unix:///run/cri-dockerd.sock”,在node机器上执行。


五、安装pod网络calico(只需在master机器上运行

下载v3.28版本的calico配置文件(一定是最新版本,旧版本可能与k8s v1.30不兼容,都是泪啊

wget https://github.com/projectcalico/calico/blob/v3.28.0/manifests/tigera-operator.yamlcat > ippool.yaml << EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:name: default
spec:cidr: 10.244.0.0/16ipipMode: AlwaysnatOutgoing: true
EOFcat > custom-resources.yaml << EOF 
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:name: default
spec:calicoNetwork:ipPools:- name: default-ipv4-ippoolblockSize: 26cidr: 10.244.0.0/16encapsulation: VXLANCrossSubnetnatOutgoing: EnablednodeSelector: {}---
apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:name: default
spec: {}EOF

安装calico v3.28

kubectl create -f tigera-operator.yaml
kubectl apply -f ippool.yamlsudo cat > /etc/NetworkManager/conf.d/calico.conf << EOF
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico;interface-name:vxlan-v6.calico;interface-name:wireguard.cali;interface-name:wg-v6.cali
EOFkubectl apply -f custom-resources.yaml


在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

union的特性和大小端

一、union在c和c语言中的特性 1.共享内存空间&#xff1a;union的所有成员共享同一块内存空间。意味着在同一时刻&#xff0c;union 只能存储其成员 中的一个值。当你修改了union中的一个成员&#xff0c;那么其它成员的值也会被改变&#xff0c;因为它们实际上都是指向同一块…

【Blockly图形化积木编程二次开发学习笔记】5.自动保存与恢复

文章目录 引用使用 引用 <script src"./blockly/appengine/storage.js"></script>使用 <script>window.setTimeout(BlocklyStorage.restoreBlocks, 0); // 从本地存储中恢复块BlocklyStorage.backupOnUnload(); // 用户离开页面时自动将块备份到…

Reactor 模型 和 Proactor 模型

在网络IO设计中&#xff0c;有两种高性能模型&#xff1a;Reactor模型和Proactor模型。 Reactor基于同步IO模式&#xff0c;Proactor基于异步IO模式。 不过&#xff0c;无论是 Reactor&#xff0c;还是 Proactor&#xff0c;都是一种基于「事件分发」的网络编程模式&#xff0…

MOZHE SQL手工注入漏洞测试(MySQL数据库)

主界面URL没有参数&#xff0c;无法判断是否有注入点 点击公告 【浏览器不便于查看返回包可以用burp】 测试URL 参数后加上单引号&#xff0c;报错&#xff0c;说明存在注入点 http://124.70.64.48:40021/new_list.php?id1 获取表列数 order by 4 返回200 order by 5 …

怎样在 Nginx 中配置基于请求客户端输入方式的路由?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 怎样在 Nginx 中配置基于请求客户端输入方式的路由一、Nginx 路由的基础概念二、理解客户端输入方式三、基于用户代理的路由配置四、基于请求头的路由配置五、基…

MATLAB基础:数组及其数学运算

今天我们继续学习MATLAB中的数组 我们在学习MATLAB时了解到&#xff0c;MATLAB作者秉持着“万物皆可矩阵”的思想企图将数学甚至世间万物使用矩阵表示出来&#xff0c;而矩阵的处理&#xff0c;自然成了这门语言的重中之重。 数组基础 在MATLAB中&#xff0c;数组是一个基本…

【Android】碎片—动态添加、创建Fragment生命周期、通信

简单用法 在一个活动中添加两个碎片&#xff0c;并让这两个碎片平分活动空间 先新建一个左侧碎片布局和一个右侧碎片布局 左侧碎片 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/…

Energizer锂电池系列之一的CR2032系列产品介绍

Energizer 的CR2032系列产品是锂纽扣电池&#xff0c;其能量密度高于传统电池。该系列于 2009 年发布&#xff0c;至今仍是最受欢迎的锂电池系列之一。虽然不可充电&#xff0c;但它们的保质期很长&#xff0c;可承受 -30C 至 65C 的环境温度。该系列的一些重要事实包括&#x…

纯电SUV又一个卷王,比亚迪都没它狠

文 | AUTO芯球 作者 | 雷慢 太狠了&#xff0c;就在刚刚&#xff0c; 我劝阻了一个高中同学暂时不要买宋PLUS纯电版&#xff0c; 因为又一个新能源卷王出现了&#xff0c; 在卷价格上&#xff0c;宋PLUS都没它狠。 不信你们看&#xff0c;埃安V第二代刚发布&#xff0c; …

搜维尔科技:scalefit-实时可视化人体工程学评估和直观报告

实时人体工程学评估和直观报告 使用Xsens Ergo Live体验动态人体工程学评估&#xff0c;并进行实时分析和直观报告-具有 Xsens 动作捕捉技术和 scalefit 的 Industrial Athlete。进行实时评估&#xff0c;轻松解释数据&#xff0c;并在 Excel 中生成快速、有见地的报告&#x…

视频编辑处理SDK,助力企业快速响应市场变化

视频已成为企业传播信息、展示品牌、连接用户的重要桥梁&#xff0c;如何在快节奏的市场竞争中&#xff0c;快速制作出高质量、富有创意的视频内容&#xff0c;成为众多企业面临的共同挑战。美摄科技&#xff0c;作为视频编辑处理技术的领航者&#xff0c;携其强大的视频编辑处…

Android 中如何设置activity的启动动画,让它像dialog一样从底部往上出来

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 在 Android 中&#xff0c;你可以通过定义自定义的动画资源并在启动和结束 Activity 时应用这些动画&#xff0c;实现类似对话框从底部向上进入…

Linux并发程序设计(3):守护进程

目录 前言 一、介绍 1.1 概念 1.2 特点 1.3 举例 二、系统编程 2.1 setsid函数 2.2 getpid函数 2.3 getsid函数 2.4 getpgid函数 2.5 chdir函数 三、代码例程 3.1 使子进程在后台运行 3.2 使子进程脱离原终端 3.3 更换目录&#xff0c;并设定权限&#xff08;非…

noVNC使用与介绍

noVNC使用与介绍报告 1. 概述 VNC&#xff08;Virtual Network Console&#xff0c;虚拟网络控制台&#xff09;是一种流行的远程桌面访问协议&#xff0c;它允许用户通过网络连接到远程计算机的图形界面。VNC协议的实现通常包括两个主要组件&#xff1a;服务器端&#xff08…

【Python】 基于Q-learning 强化学习的贪吃蛇游戏(源码+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

java.lang.ThreadLocal

ThreadLocal万字总结https://blog.csdn.net/sinat_33921105/article/details/103295070 key的唯一性 一个线程中的多个ThreadLocal变量如何存储、如何保证唯一性&#xff1f; 每一个 ThreadLocal<T> tl new ThreadLocal<>(); 创建出来都有一个不变且唯一的thre…

vue-plugin-hiprint 打印 预览打印+静默打印

1.安装 npm install vue-plugin-hiprint npm i socket.io-client --save //为了静默打印 &#xff08;为此还需安装客户端&#xff09; 2…html页面 引入css <link rel"stylesheet" type"text/css" media"print" href"https://cdn.jsde…

新手做短视频素材在哪里找?做短视频素材工具教程网站有哪些?

新手短视频制作指南&#xff1a;从零开始&#xff0c;快速成为短视频达人 蛙学网&#xff1a;新手短视频制作的首选平台 作为短视频制作新手&#xff0c;你是否在寻找合适的素材和工具来打造令人眼前一亮的作品&#xff1f;不用担心&#xff0c;蛙学网作为国内领先的素材平台&…

远程割草机行业全景剖析与投资前瞻预测:未来六年年复合增长率CAGR为7.8%

一、市场趋势分析 随着科技的进步和生活节奏的加快&#xff0c;远程割草机行业迎来了快速发展期。消费者对于省时省力的自动化园艺工具的需求推动了这一行业的增长。数据显示&#xff0c;远程割草机提供了更为安全、高效和环保的草坪维护解决方案。预计未来几年&#xff0c;随…

react小程序分包(遇见的坑)

使用的是taro组件 pages是原文件&#xff0c;分包文件夹是package 为了减少修改路径直接复制的pages的文件夹 第一个坑&#xff1a; 我做了分包&#xff0c;没有build打包导致没有生效&#xff08;所以需要build一下再dist里面生成分包的文件&#xff09; 第二个坑——路由…