nertctl使用了解

测试了几个容器,似乎未对k8s的containerd产生影响,都能访问
再次测试,containerd发生了重启,nrtdctl启动的容器都没了

####   sealos 创建containerd集群
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.29.9 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 --single####   sealos 创建docker集群
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.28.0 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 --singleroot@admin:~/nerdctl# kubectl get node
NAME   STATUS   ROLES           AGE     VERSION
byd    Ready    control-plane   1h   v1.29.9
#拉倒指定命名空间里,container加速代理未调试成功
root@admin:~# ctr -n k8s.io images  pull --user cn-south-1@...8 swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9
root@admin:~# ctr -n k8s.io images ls
~# cat redis.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: redis-deployment
spec:replicas: 1selector:matchLabels:app: redistemplate:metadata:labels:app: redisspec:containers:- name: redis-containerimagePullPolicy: IfNotPresentimage: swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9ports:- containerPort: 6379resources:limits:memory: "128Mi"cpu: "200m"---
apiVersion: v1
kind: Service
metadata:name: redis-service
spec:selector:app: redistype: NodePortports:- name: httpport: 6379targetPort: 6379nodePort: 30079root@admin:~# kubectl apply -f redis.yaml    #测试服务是否可用
root@admin:~/nerdctl# kubectl get pod
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-65d75b7b66-rtcsb   1/1     Running   0          11m

安装nertctl

################   nertctl
root@admin:~# NERDCTL_VERSION=$(curl -s https://api.github.com/repos/containerd/nerdctl/releases/latest | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
root@admin:~# echo $NERDCTL_VERSION
2.1.3
root@admin:~# wget https://github.com/containerd/nerdctl/releases/download/v${NERDCTL_VERSION}/nerdctl-${NERDCTL_VERSION}-linux-amd64.tar.gzhttps://github.com/containerd/nerdctl/releases/download/v2.1.3/nerdctl-2.1.3-linux-amd64.tar.gzroot@admin:~/nerdctl# ./nerdctl images
REPOSITORY                                     TAG      IMAGE ID        CREATED           PLATFORM       SIZE       BLOB SIZE
swr.cn-south-1.myhuaweicloud.com/dddup/redis    6.0.9    94fb31b76518    16 minutes ago    linux/amd64    114.4MB    38.23MBroot@admin:~/nerdctl# ./nerdctl ps
CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMESroot@admin:~/nerdctl# ./nerdctl run -d --name redis6349  -p 6379:6379 swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9
FATA[0000] failed to verify networking settings: failed to create default network: needs CNI plugin "bridge" to be installed in CNI_PATH ("/opt/cni/bin"), see https://github.com/containernetworking/plugins/releases: exec: "/opt/cni/bin/bridge": stat /opt/cni/bin/bridge: no such file or directory

安装网络插件

# 创建目录(如果不存在)
mkdir -p /opt/cni/bin# 下载并解压 CNI 插件
wget https://github.com/containernetworking/plugins/releases/download/v1.3.0/cni-plugins-linux-amd64-v1.3.0.tgz
tar -C /opt/cni/bin -xzf cni-plugins-linux-amd64-v1.3.0.tgzroot@admin:~# ls /etc/cni/net.d/
05-cilium.conf  default         # k8s默认创建的,先不管
root@admin:~/nerdctl# cat /etc/cni/net.d/05-cilium.conf
{"cniVersion": "0.3.1","name": "cilium","type": "cilium-cni","enable-debug": false,"log-file": "/var/run/cilium/cilium-cni.log"
}# 创建 nerdctl 的 CNI 配置目录
mkdir -p /etc/cni/net.d# 复制 Kubernetes 的 CNI 配置文件(通常由 Flannel/Calico 等创建)
cp /etc/cni/net.d/05-cilium.conf  /etc/cni/net.d/nerdctl.conflist   #  这似乎没用用到root@admin:~/nerdctl# vim /etc/cni/net.d/nerdctl.conflist  # 改名字
{"cniVersion": "0.3.1","name": "cilium-nertctl",#  k8s使用的名字是cilium"type": "cilium-cni","enable-debug": false,"log-file": "/var/run/cilium/cilium-cni-nertctl.log"#  k8s使用的名字是cilium
}
root@admin:~/nerdctl# ./nerdctl run -d --name redis6379  -p 6379:6379 swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9
c3af9125384cb01120fc00e5fd737010863587b11668f4f291d401d874963102
root@admin:~/nerdctl# ./nerdctl inspect redis6379|grep -i address"address": "/run/containerd/containerd.sock""nerdctl/log-config": "{\"driver\":\"json-file\",\"address\":\"/run/containerd/containerd.sock\"}","GlobalIPv6Address": "","IPAddress": "10.4.0.3","MacAddress": "3e:54:89:65:4c:cf","IPAddress": "10.4.0.3","GlobalIPv6Address": "","MacAddress": "3e:54:89:65:4c:cf"root@admin:~/nerdctl# cat /etc/cni/net.d/nerdctl-bridge.conflist  # 这似乎是自动创建的
{"cniVersion": "1.0.0","name": "bridge","nerdctlID": "17f29b073143d8cd97b5bbe492bdeffec1c5fee55cc1fe2112c8b9335f8b6121","nerdctlLabels": {"nerdctl/default-network": "true"},"plugins": [{"type": "bridge","bridge": "nerdctl0","isGateway": true,"ipMasq": true,"hairpinMode": true,"ipam": {"ranges": [[{"gateway": "10.4.0.1","subnet": "10.4.0.0/24"}]],"routes": [{"dst": "0.0.0.0/0"}],"type": "host-local"}},{"type": "portmap","capabilities": {"portMappings": true}},{"type": "firewall","ingressPolicy": "same-bridge"},{"type": "tuning"}]
}root@admin:~# kubectl get pod -owide
NAME                                READY   STATUS    RESTARTS   AGE   IP          NODE   NOMINATED NODE   READINESS GATES
nginx-deployment-65d75b7b66-rtcsb   1/1     Running   0          32m   10.0.0.48   byd    <none>           <none>

创建自定义网络

root@admin:~/nerdctl# ./nerdctl network create   --subnet "192.168.200.0/24"   --gateway "192.168.200.1"   my-custom-net
6aba327441687a0a506461680532503e64e093ce89d28ce8cff978768843acf2# 使用自定义网络
root@admin:~/nerdctl# ./nerdctl run --net my-custom-net -d --name redis16379  -p 16379:6379 swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9
6a98b4a4460f23386d6a1fdf5109996b2b91aeea20aeed5a9ccde332a0c39847
root@admin:~/nerdctl# ./nerdctl ps
CONTAINER ID    IMAGE                                                COMMAND                   CREATED          STATUS    PORTS                      NAMES
6a98b4a4460f    swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9    "docker-entrypoint.s…"    8 seconds ago    Up        0.0.0.0:16379->6379/tcp    redis16379
cbfa26fedcea    swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9    "docker-entrypoint.s…"    7 minutes ago    Up        0.0.0.0:6379->6379/tcp     redis6379root@admin:~/nerdctl# cat /etc/cni/net.d/default/nerdctl-my-custom-net.conflist
{"cniVersion": "1.0.0","name": "my-custom-net","nerdctlID": "6aba327441687a0a506461680532503e64e093ce89d28ce8cff978768843acf2","nerdctlLabels": {},"plugins": [{"type": "bridge","bridge": "br-6aba32744168","isGateway": true,"ipMasq": true,"hairpinMode": true,"ipam": {"ranges": [[{"gateway": "192.168.200.1","subnet": "192.168.200.0/24"}]],"routes": [{"dst": "0.0.0.0/0"}],"type": "host-local"}},{"type": "portmap","capabilities": {"portMappings": true}},{"type": "firewall","ingressPolicy": "same-bridge"},{"type": "tuning"}]
}

compose使用

root@admin:~/nerdctl# ./nerdctl network ls
NETWORK ID      NAME              FILEcilium            /etc/cni/net.d/05-cilium.conf   # 这些网络通常由容器运行时或系统直接提供,不需要通过 nerdctl 管理生命周期。
6aba32744168    my-custom-net     /etc/cni/net.d/default/nerdctl-my-custom-net.conflist   # 手动创建的
17f29b073143    bridge            /etc/cni/net.d/nerdctl-bridge.conflist   # 自动创建的cilium-nertctl    /etc/cni/net.d/nerdctl.conflist   # 手动复制改名的hostnoneroot@admin:~/nerdctl# cat my-redis.yaml
services:redis:image: swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9container_name: my-rediscommand: redis-server --requirepass "yourpassword"  # 设置密码ports:- "26379:6379"networks:- my-custom-netnetworks:my-custom-net:external: trueroot@admin:~/nerdctl# ./nerdctl compose -f my-redis.yaml up -d
root@admin:~/nerdctl# ./nerdctl compose -f my-redis.yaml up -d  --force-recreate
root@admin:~/nerdctl# ./nerdctl ps
CONTAINER ID    IMAGE                                                COMMAND                   CREATED           STATUS    PORTS                      NAMES
cd51c9a8881d    swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9    "docker-entrypoint.s…"    11 seconds ago    Up        0.0.0.0:26379->6379/tcp    my-redis
6a98b4a4460f    swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9    "docker-entrypoint.s…"    42 minutes ago    Up        0.0.0.0:16379->6379/tcp    redis16379
cbfa26fedcea    swr.cn-south-1.myhuaweicloud.com/dddup/redis:6.0.9    "docker-entrypoint.s…"    50 minutes ago    Up        0.0.0.0:6379->6379/tcp     redis6379

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

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

相关文章

三、k8s 1.29 之 资源清单

一、什么是资源 资源(Resources) 是指集群中可被分配、管理和调度的各种实体,既包括计算、存储、网络等基础设施资源,也包括 K8s 自身定义的 API 对象(如 Pod、Deployment 等)。这些资源是 K8s 调度和管理工作负载的核心基础。 Kubernetes 中的资源本质上是 “可被操作的…

React中常用的Hook(useEffect、useRef、useMemo、useNavigate、useParams)

React hook1&#xff1a;useEffect 在编程中&#xff0c;副作用是指函数或表达式在执行过程中对外部环境产生影响的行为。例如&#xff1a; 修改外部变量&#xff08;如全局变量、DOM、API 请求、设置定时器等&#xff09; 什么是纯函数&#xff1f; // 纯函数&#xff1a;输入…

关联规则挖掘1:Apriori算法

目录 一、Apriori算法核心原理 1. 基本概念 2. Apriori性质 二、完整案例计算&#xff08;超市购物数据&#xff09; ​步骤1&#xff1a;按字母序重排每笔交易​ ​步骤2&#xff1a;统计频繁1-项集&#xff08;min_support40%&#xff09;​​ ​步骤3&#xff1a;生成…

基于 C++ 线程池的多线程目标检测后处理系统设计与实现

在实际的智能视频分析系统中,目标检测(如 YOLOv5)只是第一步。检测结果往往需要进行后续处理:画框、报警、推流、日志记录等。这些操作如果在检测主线程中同步执行,会严重拖慢整体推理速度。 本文将带你从零实现一个基于 C++ 模板线程池的异步后处理系统,实现“检测与后…

Java并发容器详解

1. JUC并发容器概述 Java集合容器框架主要有四大类别&#xff1a;List、Set、Queue、Map。常见的ArrayList、LinkedList、HashMap等容器都是非线程安全的。 Java提供了同步容器&#xff08;如Vector、Hashtable、SynchronizedList&#xff09;通过synchronized实现同步&#xf…

SpringAI系列---【SpringA集成OllamaI如何先调用向量库,再把查到的结果一起传给大模型?】

SpringAI如何先调用向量库&#xff0c;再把查到的结果一起传给大模型&#xff1f; 1.引入pom <dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-ollama</artifactId></depend…

告别“测试滞后”:AI实时测试工具在敏捷开发中的落地经验

告别“测试滞后”&#xff1a;AI实时测试工具在敏捷开发中的落地经验 在敏捷开发的“快速迭代”节奏中&#xff0c;测试环节常常成为“拖后腿”的短板。某互联网公司的敏捷团队曾陷入这样的循环&#xff1a;2周迭代周期中&#xff0c;开发用10天完成功能&#xff0c;留给测试的…

K8S-Pod资源对象

一、K8S架构与组件1、K8S架构k8s 总体架构采用了经典的 maste/slave 架构模式&#xff0c;分 master 节点和 worker 节点&#xff0c;节点可以是虚拟机也可以是物理机。K8S组件 master 节点组件Kube-apiserver 用于暴露 Kubernetes API&#xff0c;任何资源请求或调用操作都是通…

PyTorch API 5

文章目录torch.compiler延伸阅读torch.fft快速傅里叶变换辅助函数torch.func什么是可组合的函数变换&#xff1f;为什么需要可组合的函数变换&#xff1f;延伸阅读torch.futurestorch.fx概述编写转换函数图结构快速入门图操作直接操作计算图使用 replace_pattern() 进行子图重写…

基于决策树模型的汽车价格预测分析

一、整体流程概览这份代码实现了一个完整的机器学习预测流程&#xff0c;核心目标是通过汽车的各项特征预测其价格。整体流程分为 6 个主要步骤&#xff1a;模拟生成汽车数据集&#xff08;含价格标签&#xff09;数据预处理&#xff08;清洗、编码、特征选择&#xff09;探索性…

0基础安卓逆向原理与实践:第2章:编程基础与工具链

第2章:编程基础与工具链 2.1 Java编程基础 2.1.1 Java语言特性 Java是安卓应用开发的主要语言,具有以下核心特性: mindmaproot((Java特性))面向对象封装继承多态抽象平台无关字节码JVM一次编译到处运行内存管理自动垃圾回收堆栈管理引用类型安全性字节码验证安全管理器访…

深入理解JVM内存结构:从字节码执行到垃圾回收的全景解析

&#x1f9e0; 深入理解JVM内存结构&#xff1a;从字节码执行到垃圾回收的全景解析 #JVM内存模型 #Java性能优化 #垃圾回收机制 #并发编程一、JVM内存结构全景图二、线程共享区域详解 2.1 堆&#xff08;Heap&#xff09;—— 对象生存的宇宙 存储内容&#xff1a; 所有new创建…

用 C++ 构建高性能测试框架:从原型到生产实战指南

用 C 构建高性能测试框架&#xff1a;从原型到生产实战指南 ​C 测试框架的关键价值​&#xff1a;当你的测试需要每秒处理百万级交易&#xff0c;微秒级延迟要求已成为常态时&#xff0c;Python GC 的暂停便是不可接受的奢侈。 本文将深入探讨如何用 C 构建兼具灵活性和高性能…

【C语言16天强化训练】从基础入门到进阶:Day 4

&#x1f525;个人主页&#xff1a;艾莉丝努力练剑 ❄专栏传送门&#xff1a;《C语言》、《数据结构与算法》、C语言刷题12天IO强训、LeetCode代码强化刷题、洛谷刷题、C/C基础知识知识强化补充、C/C干货分享&学习过程记录 &#x1f349;学习方向&#xff1a;C/C方向 ⭐️人…

C语言:字符函数与字符串函数(1)

在编程的过程中&#xff0c;我们经常会遇到需要处理字符和字符串的情况&#xff0c;为了方便操作字符和字符串&#xff0c;C语言标准库中提供了一系列库函数&#xff0c;接下来我们就学习一下这些函数。 目录 1. 字符分类函数 2. 字母转换函数 3. strlen函数的使用和模拟实现…

数据结构与算法系列(大白话模式)小学生起点(一)

出身&#xff0c;并不重要 &#xff01;&#xff01;&#xff01;&#xff01;只要有恒心&#xff0c;有毅力&#xff0c;肯于付出与学习&#xff0c;皆会取得相应的成就&#xff01;天道酬勤&#xff0c;天行健&#xff0c;君子当自强不息&#xff01;道可道&#xff0c;非常道…

计算机视觉第一课opencv(二)保姆级教学

目录 简介 一、边界填充 1.函数说明 2.案例分析 二、图像运算 1.号运算 2.cv2.add()函数 3.图像加权运算 三、阈值处理 四、图像平滑处理 1.椒盐噪声 2.均值滤波&#xff08;Mean Filtering&#xff09; 3.方框滤波 4. 高斯滤波&#xff08;Gaussian Filtering&am…

DINOv3

一、摘要 https://arxiv.org/pdf/2508.10104 自监督学习有望消除对人工数据标注的需求&#xff0c;使模型能够轻松扩展到大规模数据集和更大规模的架构。由于不针对特定任务或领域进行定制&#xff0c;这种训练范式具有从各种来源学习视觉表示的潜力&#xff0c;能够使用单一…

​​pytest+yaml+allure接口自动化测试框架

高薪必备&#xff01;18K接口自动化测试框架落地全流程&#xff5c;零基础到实战通关前言# 自动化测试&#xff0c;是目前测试行业一项比较普遍的测试技术了&#xff0c;之前的以UI自动化测试为主&#xff0c;现在的以接口自动化测试为主&#xff0c;无论技术更迭&#xff0c;…

LeetCode每日一题,2025-8-20

统计全为1的正方形子矩阵 这题是正方形&#xff0c;比较简单 暴力就是二维前缀和。 或者用dp&#xff0c;dp[i][j]表示以i&#xff0c;j为右下角的最大正方形的边长&#xff0c;它由(i-1,j),(i,j-1),(i-1,j-1)三者共同决定&#xff0c;通过找规律可知&#xff0c;由三个的最小值…