Ubuntu24.04.2 + kubectl1.33.1 + containerdv1.7.27 + calicov3.30.0
Ubuntu24.04.2 + kubectl1.33.1 + containerdv1.7.27 + calicov3.30.0
安装Ubuntu24.04.2 + kubectl1.33.1 + containerdv1.7.27 + calicov3.30.0
1.安装Ubuntu24.04.2,设置阿里云镜像地址
$ sudo vim /etc/apt/sources.list.d/ubuntu.sources
URIs: https://mirrors.aliyun.com/ubuntu/
1.设置主机名
#k8s-master
$ sudo hostname k8smaster ##临时生效
$ sudo hostnamectl set-hostname k8smaster ##重启后永久生效#k8s-node1
$ sudo hostname k8snode1 ##临时生效
$ sudo hostnamectl set-hostname k8snode1 ##重启后永久生效
2.关闭防火墙
sudo systemctl disable --now ufw
3.配置静态ip
vim /etc/netplan/50-cloud-init.yaml
network:version: 2ethernets:ens33:dhcp4: noaddresses: [192.168.1.181/24]gateway4: 192.168.1.1nameservers:addresses: [192.168.1.1,8.8.8.8,114.114.114.114]#生效
$ sudo netplan apply
4.开启ssh
sudo apt update
sudo apt install openssh-serversudo vim /etc/ssh/ssh_config
#开启密码和端口
5.禁用交换分区
sudo swapoff -a
打开 /etc/fstab
注释最后一行
#/swap.img none swap sw 0 0
6. 转发 IPv4 并让 iptables 看到桥接流量
执行下述命令:$ cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF$ sudo modprobe overlay
$ sudo modprobe br_netfilter# 设置所需的 sysctl 参数,参数在重新启动后保持不变
$ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF# 应用 sysctl 参数而不重新启动
$ sudo sysctl --system#确认2个模块被加载
$ lsmod | grep br_netfilter
$ lsmod | grep overlay# 确认系统变量被设置为1
$ sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward
7.安装containerd
第一种:github文档https://github.com/containerd/containerd/blob/main/docs/getting-started.md
1.第一种安装方法
1. Add Docker’s official GPG key:$ sudo apt-get update$ sudo apt-get install ca-certificates curl gnupg$ sudo install -m 0755 -d /etc/apt/keyrings$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg$ sudo chmod a+r /etc/apt/keyrings/docker.gpg2. Add the repository to Apt sources: $ echo \"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null3. Update theaptpackage index:$ sudo apt-get update4. 安装 http://containerd.io$ sudo apt-get install containerd.io5. 上面的安装需要手动安装CNI插件注意,http://containerd.io包括了runc, 但是不包括CNI插件,我们需要手动安装CNI插件:访问:Releases · containernetworking/plugins (github.com)获取最新版本的插件,然后将其安装到/opt/cni/bin中:$ wget https://github.com/containernetworking/plugins/releases/download/v1.3.0/cni-plugins-linux-amd64-v1.3.0.tgz$ sudo mkdir -p /opt/cni/bin$ sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-v1.3.0.tgz
2.第二种安装方式
1.下载containerd的容器运行时,下载地址:https://github.com/containerd/containerd/releases/download/v1.7.27/cri-containerd-cni-1.7.27-linux-amd64.tar.gz,可以通过下面命令进行下载:$ curl -LO https://github.com/containerd/containerd/releases/download/v1.7.27/cri-containerd-cni-1.7.27-linux-amd64.tar.gz2.解压:$ sudo tar -zxvf cri-containerd-cni-1.7.27-linux-amd64.tar.gz -C /3.创建目录和生成配置文件$ sudo mkdir /etc/containerd$ containerd config default | sudo tee /etc/containerd/config.toml
3. 配置 containerd 的systemd cgroup 驱动
#生成默认配置文件
$ containerd config default | sudo tee /etc/containerd/config.toml#在 /etc/containerd/config.toml 中设置:[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]...[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true //false改成true
4.重载沙箱(pause)镜像
#在 /etc/containerd/config.toml 中设置:
[plugins."io.containerd.grpc.v1.cri"]sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.10"#重新启动 containerd:
$ sudo systemctl restart containerd
8.安装k8s
1.官网安装方法
官网地址:https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
1.更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包:
$ sudo apt-get update
$ sudo apt-get install -y apt-transport-https ca-certificates curl gpg2.如果 `/etc/apt/keyrings` 目录不存在,则应在 curl 命令之前创建它,请阅读下面的注释。
$ sudo mkdir -p -m 755 /etc/apt/keyrings
$ curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg3.此操作会覆盖 /etc/apt/sources.list.d/kubernetes.list 中现存的所有配置。
$ echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list4.更新 apt 包索引,安装 kubelet、kubeadm 和 kubectl,并锁定其版本:
$ sudo apt-get update
$ sudo apt-get install -y kubelet kubeadm kubectl
$ sudo apt-mark hold kubelet kubeadm kubectl5.初始化平面
$ sudo kubeadm init \
--apiserver-advertise-address=192.168.1.181 \
--pod-network-cidr=192.168.0.0/16 \
--image-repository=registry.aliyuncs.com/google_containers \
--cri-socket=unix:///run/containerd/containerd.sock \
--kubernetes-version=v1.33.1最后输出:
Your Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configAlternatively, if you are the root user, you can run:export KUBECONFIG=/etc/kubernetes/admin.confYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.1.181:6443 --token 03x52t.80r5lnek3r3lnijv1 \--discovery-token-ca-cert-hash sha256:b17b309ed4b8f687a63061717bea099f31a045116cd311ea7c7963389556e41d1#如有需要可以重置
$ sudo kubeadm reset
9.安装calico(node服务器不需要安装)
1.第一种方法:
根据官网指导来:https://docs.tigera.io/calico/latest/getting-started/kubernetes/quickstart
$ kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.30.0/manifests/tigera-operator.yaml
$ kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.30.0/manifests/custom-resources.yaml
$ watch kubectl get tigerastatus
NAME AVAILABLE PROGRESSING DEGRADED SINCE
apiserver True False False 4m9s
calico True False False 3m29s
goldmane True False False 3m39s
ippools True False False 6m4s
whisker True False False 3m19s
2.第二种方法:
1.下载yaml文件
$ weget https://projectcalico.docs.tigera.io/archive/v3.25/manifests/calico.yaml2.修改镜像地址为华为云:
$ sed -i 's|docker.io/calico/|swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/|g' calico.yaml最后为 image:swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/calico/cni...:v3.25.03.修改CALICO_IPV4POOL_CIDR的value
value: "192.168.0.0/16"4.应用
$ kubectl apply -f calico.yaml
10.node节点加入集群
node join:
$ sudo kubeadm join 192.168.1.181:6443 --token 03x52t.80r5lnek3r3lnijv1 \--discovery-token-ca-cert-hash sha256:b17b309ed4b8f687a63061717bea099f31a045116cd311ea7c7963389556e41d1 \--cri-socket=unix:///run/containerd/containerd.sock
11.安装kubesphere
官网:https://kubesphere.io/zh/docs/v4.1/03-installation-and-upgrade/02-install-kubesphere/02-install-kubernetes-and-kubesphere/
1.安装helm
helm upgrade --install \
-n kubesphere-system \
--create-namespace ks-core https://charts.kubesphere.com.cn/main/ks-core-1.1.3.tgz \
--debug --wait \
--set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \
--set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks \
--set hostClusterName=k8s-pacoThank you for choosing KubeSphere Helm Chart.Please be patient and wait for several seconds for the KubeSphere deployment to complete.1. Wait for Deployment CompletionConfirm that all KubeSphere components are running by executing the following command:kubectl get pods -n kubesphere-system
2. Access the KubeSphere ConsoleOnce the deployment is complete, you can access the KubeSphere console using the following URL: http://192.168.1.181:308803. Login to KubeSphere ConsoleUse the following credentials to log in:Account: adminPassword: P@88w0rdNOTE: It is highly recommended to change the default password immediately after the first login.
相关文章:

Ubuntu24.04.2 + kubectl1.33.1 + containerdv1.7.27 + calicov3.30.0
Ubuntu24.04.2 kubectl1.33.1 containerdv1.7.27 calicov3.30.0 安装Ubuntu24.04.2 kubectl1.33.1 containerdv1.7.27 calicov3.30.0 1.安装Ubuntu24.04.2,设置阿里云镜像地址 $ sudo vim /etc/apt/sources.list.d/ubuntu.sources URIs: https://mirrors.aliy…...

循环神经网络(RNN)全面教程:从原理到实践
循环神经网络(RNN)全面教程:从原理到实践 引言 循环神经网络(Recurrent Neural Network, RNN)是处理序列数据的经典神经网络架构,在自然语言处理、语音识别、时间序列预测等领域有着广泛应用。本文将系统介绍RNN的核心概念、常见变体、实现方法以及实际…...

uniapp 键盘顶起页面问题
关于uniapp中键盘顶起页面的问题。这是一个在移动应用开发中常见的问题,特别是当输入框位于页面底部时,键盘弹出会顶起整个页面,导致页面布局错乱。 pages.json 文件内,在需要处理软键盘的页面添加 softinputMode 配置࿱…...
利用TOA与最小二乘法直接求解
为了利用到达时间(TOA)和最小二乘法直接求解,我们首先需要理解TOA定位的基本原理和最小二乘法的应用。 步骤1: 理解TOA定位原理 到达时间(TOA)定位是通过测量信号从发射源到达接收器的时间来确定位置的一种方法。假设…...
SpringBoot系列之RabbitMQ 实现订单超时未支付自动关闭功能
系列博客专栏: JVM系列博客专栏SpringBoot系列博客 RabbitMQ 实现订单超时自动关闭功能:从原理到实践的全流程解析 一、业务场景与技术选型 在电商系统中,订单超时未支付自动关闭功能是保障库存准确性、提升用户体验的核心机制。传统定时任…...

【C++高级主题】命令空间(五):类、命名空间和作用域
目录 一、实参相关的查找(ADL):函数调用的 “智能搜索” 1.1 ADL 的核心规则 1.2 ADL 的触发条件 1.3 ADL 的典型应用场景 1.4 ADL 的潜在风险与规避 二、隐式友元声明:类与命名空间的 “私密通道” 2.1 友元声明的基本规则…...
ArcGIS Pro 3.4 二次开发 - 地图创作 1
环境:ArcGIS Pro SDK 3.4 + .NET 8 文章目录 ArcGIS Pro 3.4 二次开发 - 地图创作 11 样式管理1.1 如何通过名称获取项目中的样式1.2 如何创建新样式1.3 如何向项目添加样式1.4 如何从项目中移除样式1.5 如何向样式添加样式项1.6 如何从样式中移除样式项1.7 如何判断样式是否可…...
2.1HarmonyOS NEXT开发工具链进阶:DevEco Studio深度实践
HarmonyOS NEXT开发工具链进阶:DevEco Studio深度实践 在HarmonyOS NEXT全栈自研的技术体系下,DevEco Studio作为一站式开发平台,通过深度整合分布式开发能力,为开发者提供了从代码编写到多端部署的全流程支持。本章节将围绕多设…...
MyBatis常用注解全解析:从基础CRUD到高级映射
MyBatis常用注解全解析:从基础CRUD到高级映射 本文全面解析MyBatis核心注解体系,涵盖基础操作、动态SQL、关系映射等高级特性,助你彻底掌握MyBatis注解开发精髓 一、MyBatis注解概述 1.1 注解 vs XML配置 MyBatis同时支持XML配置和注解两种…...

国标GB28181设备管理软件EasyGBS视频平台筑牢文物保护安全防线创新方案
一、方案背景 文物作为人类文明的珍贵载体,具有不可再生性。当前,盗窃破坏、游客不文明行为及自然侵蚀威胁文物安全,传统保护手段存在响应滞后、覆盖不全等局限。随着5G与信息技术发展,基于GB28181协议的EasyGBS视频云平台&…...
十二、【核心功能篇】测试用例列表与搜索:高效展示和查找海量用例
【核心功能篇】测试用例列表与搜索:高效展示和查找海量用例 前言准备工作第一步:更新 API 服务以支持分页和更完善的搜索第二步:创建测试用例列表页面组件 (`src/views/testcase/TestCaseListView.vue`)第三步:测试列表、搜索、筛选和分页总结前言 当测试用例数量逐渐增多…...

Baklib内容中台AI重构智能服务
AI驱动智能服务进化 在智能服务领域,Baklib内容中台通过自然语言处理技术与深度学习框架的深度融合,构建出具备意图理解能力的知识中枢。系统不仅能够快速解析用户输入的显性需求,更通过上下文关联分析算法识别会话场景中的隐性诉求…...

数据库包括哪些?关系型数据库是什么意思?
目录 一、数据库包括哪些 (一)关系型数据库 (二)非关系型数据库 (三)分布式数据库 (四)内存数据库 二、关系型数据库是什么 (一)关系模型的基本概念 …...

Python爬虫监控程序设计思路
最近因为爬虫程序太多,想要为Python爬虫设计一个监控程序,主要功能包括一下几种: 1、监控爬虫的运行状态(是否在运行、运行时间等) 2、监控爬虫的性能(如请求频率、响应时间、错误率等) 3、资…...
Edge浏览器怎样开启兼容模式
允许站点在 IE 模式下重新加载: 打开 Edge 浏览器,点击右上角的三个点图标,选择 “设置”(或者按下 “Alt F” 组合键后再点击 “设置”)。在设置页面中,切换到左侧的 “默认浏览器” 选项卡。在 “Intern…...

【HarmonyOS 5】Laya游戏如何鸿蒙构建发布详解
【HarmonyOS 5】Laya游戏如何鸿蒙构建发布详解 一、前言 LayaAir引擎是国内最强大的全平台引擎之一,当年H5小游戏火的时候,腾讯入股了腊鸭。我还在游戏公司的时候,17年曾经开发使用腊鸭的H5小游戏,很怀念当年和腊鸭同事一起解决…...
C++ TCP传输心跳信息
在C++ TCP程序中实现心跳机制是保持连接活跃、检测连接状态的重要手段。以下是几种常见的心跳实现方式: 1. 应用层心跳(推荐) 基本心跳实现 #include <iostream> #include <thread> #include <chrono>...
Elasticsearch | 如何将修改已有的索引字段类型并迁移数据
CodingTechWork 引言 在 Elasticsearch 中,一旦索引的字段类型被定义,就无法直接修改已有字段的类型。例如,如果你已经将 timestamp 字段的类型设置为 TEXT,并希望将其更改为 DATE 类型,这将需要一些额外的步骤。在这…...
c++之STL容器的学习(上)
一、泛型编程(函数模板和类模板) 这部分围绕泛型编程技术展开,C中的泛型编程主要是通过函数模板和类模板实现的,主要会介绍标准模板库STL的知识点。1.关于模板的理解 模板就是建立一种通用的模式,从而提高复用性。在生…...
Linux 环境下高效视频切帧的实用指南
Linux 环境下高效视频切帧的实用指南 在视频处理领域,切帧是一项基础且常用的操作,它能够将视频按照指定的规则提取出单帧图像,广泛应用于视频分析、视频缩略图生成、视频内容预览等场景。在 Linux 系统中,我们可以借助强大的开源…...

【鱼皮-用户中心】笔记
任务:完整了解做项目的思路,接触一些企业及的开发技术 title 企业做项目流程需求分析技术选型 计划一一、前端初始化1. **下载node.js**2. **安装yarn**3. **初始化 Ant Design Pro 脚⼿架(关于更多可进入官网了解)**4. **开启Umi…...
MUX-VLAN基本概述
目录 1)技术背景: 2)基本概念: 3)配置:进vlan视图下键入 1)技术背景: 在企业网络中,各个部门之间网络需要相互独立,通常使用VLAN技术可以实现这一要求。如果企…...
Cursor使用最佳实践总结
#作者:曹付江 文章目录 1、需求文档怎么写2. 项目文件夹选择3.技术栈的选择4.最重要:Cursor中的Rules(规则)5.对话模式与模型选择6. New Chat(新建对话)7.自动化测试8.前后端细调的方法9、完整Cursor项目模…...

交错推理强化学习方法提升医疗大语言模型推理能力的深度分析
核心概念解析 交错推理:灵活多变的思考方式 交错推理(Interleaved Reasoning)是一种在解决复杂问题时,不严格遵循单一、线性推理路径,而是交替、灵活应用多种推理策略的方法。这种思维方式与人类专家在处理复杂医疗问题时的思考模式更为接近,表现为一种动态、适应性强的…...

SpringBatch+Mysql+hanlp简版智能搜索
资源条件有限,需要支持智搜的数据量也不大,上es搜索有点大材小用了,只好写个简版mysql的智搜,处理全文搜素,支持拼音搜索,中文分词,自定义分词断词,地图范围搜索,周边搜索…...
常见 Web 安全问题
网站在提供便利的同时,也面临着各种安全威胁。一个小小的漏洞可能导致数据泄露、系统瘫痪,甚至带来不可估量的经济损失。本文介绍几种最常见的 Web 安全问题,包括其原理、危害以及防护策略。 一、SQL 注入(SQL Injectionÿ…...
spring切面
概念 两个特点: IOC控制反转AOP主要用来处理公共的代码 例如一个案例就是添加用户,重复的代码包含了记录日志、事务提交和事务回滚等,都是重复的,为了简单,交给AOP来做。 即将复杂的需求分解出不同方面,…...

go语言基础|slice入门
slice slice介绍 slice中文叫切片,是go官方提供的一个可变数组,是一个轻量级的数据结构,功能上和c的vector,Java的ArrayList差不多。 slice和数组是有一些区别的,是为了弥补数组的一些不足而诞生的数据结构。最大的…...

使用 HTML + JavaScript 实现可拖拽的任务看板系统
本文将介绍如何使用 HTML、CSS 和 JavaScript 创建一个交互式任务看板系统。该系统支持拖拽任务、添加新任务以及动态创建列,适用于任务管理和团队协作场景。 效果演示 页面结构 HTML 部分主要包含三个默认的任务列(待办、进行中、已完成)和一个用于添加新列的按钮。 <…...
LangChain核心之Runnable接口底层实现
导读:作为LangChain框架的核心抽象层,Runnable接口正在重新定义AI应用开发的标准模式。这一统一接口设计将模型调用、数据处理和API集成等功能封装为可复用的逻辑单元,通过简洁的管道符语法实现复杂任务的声明式编排。 对于面临AI应用架构选择…...