问题标签 [k3s]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
336 浏览

go - 如何正确地从 exec Pod 流式传输日志

我正在Kind集群中运行操作员。我的开发机器运行 Docker for Mac 以运行该 Kind 集群。我的操作员功能之一是关于在正在运行的 Pod 中执行命令 - 类似于.kubectl exec

当操作员在 Linux 主机上没有 Kind ie k3s 运行时,我可以流式传输 Pod 的日志。像这样的东西:

但是当它在 Kind 集群中运行时,我再也看不到 Pod 的日志了。我所看到的只是:

这是我的操作员代码(Go):

这是我应用于两个集群的 RBAC:

我错过了什么?无论它是否在 Kind 上运行,如何使其工作?

0 投票
0 回答
234 浏览

raspberry-pi - Rook-Ceph 部署:创建 csi-cephfsplugin-provisioner 和 csi-rdb-plugin-provisioner 时出错

我在树莓派上设置 rook ceph 集群时遇到问题。由于没有官方的手臂支持,我正在使用 raspbernetes 图像,例如手臂上的指南车,我希望我在正确的地方寻求指导。类似G1G2的指南基本上做同样的事情,但没有考虑手臂。

ROOK_CSI_CEPH_IMAGE: "raspbernetes/ceph-csi:v3.1.0" ROOK_CSI_REGISTRAR_IMAGE: "raspbernetes/csi-node-driver-registrar:1.3.0" ROOK_CSI_RESIZER_IMAGE: "raspbernetes/csi-external-resizer:0.5.0" ROOK_CSI_PROVISIONER_IMAGE: "raspbernetes/csi-external-provisioner:1.6.0" ROOK_CSI_SNAPSHOTTER_IMAGE: "raspbernetes/csi-external-snapshotter:2.1.1" ROOK_CSI_ATTACHER_IMAGE: "raspbernetes/csi-external-attacher:2.2.0"

应用默认/示例 cluster.yaml 时,我在 cephfs 和 rdb 配置程序中遇到了类似的错误。

error: a container name must be specified for pod csi-cephfsplugin-provisioner-5cb7799c98-dp5tx, choose one of: [csi-attacher csi-snapshotter csi-resizer csi-provisioner csi-cephfsplugin liveness-prometheus]

与预期行为的偏差: 如果我正确理解错误消息,我在其中一个示例 .yamls 中缺少定义,但我无法找出我必须准确更改的内容。该错误还表明这不是我认为的架构问题。

编辑:根据这篇帖子stackoverflow,当可以在许多容器中找到容器的 pod 时会发生此错误。所以我想我必须将配置容器指向适用的 pod。但是怎么做?

预期行为: 简单部署到 cephfs 和 rdb provisioner 的运行状态。

如何重现它(最小且精确): 3 或 6 个带有 m.2 SATA SSD 和适配器的树莓派,运行 ubuntu64 for arm。k3s kubernetes HA 设置与外部 etcd 集群和多个运行良好的服务。通过arm上的 guide rook 集成 rook-ceph 。

环境

  • 操作系统:ARM 的 Ubuntu64 焦点
  • 内核:Linux server-01 5.4.0-1025-raspi #28-Ubuntu SMP PREEMPT Wed Dec 9 17:10:53 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux
  • 云提供商或硬件配置:RaspberryPi4 8gb
  • Rook 版本:master 和 rook/ceph:v1.5.4
  • 存储后端版本:ceph/ceph:v15.2.8
  • Kubernetes版本:v1.19.5+k3s2
  • Kubernetes集群类型:k3s
0 投票
1 回答
235 浏览

kubernetes - Kubernetes Job Pod 进入“未知”状态

我正在使用 Kubernetes 的 K3s 发行版,它部署在 AWS 的 Spot EC2 实例上。

我已经安排了某个处理作业,有时这个作业被终止并进入“未知”状态(作业代码异常终止)

它显示了这一点:

AWS 日志显示崩溃前的 CPU 消耗为 99%。从多个来源(1 , 2 , 3)我看到这可能是节点崩溃的原因,但没有看到那个,可能是什么原因?

谢谢!

0 投票
1 回答
726 浏览

mysql - mariadb 在具有主机路径卷的 Kubernetes pod 内崩溃

我正在尝试将 linux 服务器上的许多 docker 容器移动到在不同的 linux 机器上运行的基于 kubernets 的测试部署,在该机器上我已经将 kubernetes 作为k3s实例安装在 vagrant 虚拟机中。

其中一个容器是 mariadb 容器实例,绑定卷映射

这是我正在使用的 docker-compose 的相关部分:

请注意,这可以正常工作。(该容器被另一个应用程序容器使用,该容器连接到它并从数据库中毫无问题地读取数据)。

然后我尝试将其转换为 kubernetes 配置,将卷文件夹复制到目标计算机并使用以下 kubernetes .yaml 部署文件。这包括部署 .yaml、持久卷声明和持久卷,以及使容器可访问的 NodePort 服务。对于数据卷,我使用了一个简单的 hostPath 卷,指向从 docker-compose 的绑定挂载复制的内容。

应用部署后,一切似乎都运行良好,kubectl get ...因为 pod 和卷似乎运行正常

这是 pod 的日志:

和描述 pod 命令:

但后来,我注意到客户端应用程序在连接时出现问题。经过一番调查,我得出结论,虽然 pod 正在运行,但其中运行的 mariadb 进程可能在启动后就崩溃了。如果我进入容器kubectl exec并尝试运行例如我得到的mysql客户端:

知道什么可能导致问题,或者我该如何进一步调查这个问题?(注:我不是 Kubernetes 方面的专家,但最近才开始学习它)

编辑:根据@Novo 的评论,我尝试删除卷文件夹并让 mariadb 从头开始​​重新创建部署。现在我的 pod 甚至都没有启动,就终止了CrashLoopBackOff

通过比较 pod 日志,我注意到在之前的 mariabd 日志中有一条消息:

现在替换为

是否该问题与主机 vagrant 机器中的卷文件夹的某些访问权限问题有关?

0 投票
2 回答
1598 浏览

kubernetes - 在 pi 为零的情况下运行 k3s

当使用 k3sup 在 raspberrypi 4b 上使用 raspbian buster 设置 k3s 时,它可以工作(armv7 架构;参考下文)。在 pi zeros 上使用与代理节点完全相同的类似设置过程,并运行 raspi-config,它会出错并出现以下故障:

一个可能的解释可能是 zeros 使用的是 armv6 架构,其中有一些报告提到它们可能不受支持。也有相互矛盾的报告说它已经可以在 pi zeros 上运行。

是否有任何配置可以使 k3s(代理)在树莓派零(w)上成功运行?如果是这样,节点操作系统/版本和 k3s 设置是什么?任何帮助表示赞赏,因为这是一场艰苦的战斗。

(以下参考:https ://alexellisuk.medium.com/walk-through-install-kubernetes-to-your-raspberry-pi-in-15-minutes-84a8492dc95a )

0 投票
1 回答
279 浏览

kubernetes - Raspberry Pi 4 上的 K3S - kubectl get pods 运行超时

问题

当我将 k3s 代理连接到服务器并在服务器上运行“kubectl get nodes”时。我收到以下错误:

但如果服务器是独立的,我可以轻松运行“kubectl get nodes”。

服务器上的 CPU 利用率保持在 30-40% 左右。RAM 使用量为 3.74G 的 583M。

眼镜

  • 2 个带 4GB RAM 的 Raspberry Pi 4b
  • 全新安装 raspbian lite (buster)
  • 启用旧版 iptables 和 cgroups

K3S安装

在服务器上,我已经完成了:

在代理上:

在此先感谢,它让我发疯!

0 投票
2 回答
231 浏览

gitlab - gitlab k3s runner WARNING: Checking for jobs... failed x509: certificate signed by unknown authority

我通过 gitlab 上的应用程序面板将 gitlab-runner 安装到 k3s 牧场主集群时遇到问题。它工作正常,然后今天 gitlab 重新启动并开始发出此错误。

我发现了 gitlab 证书在哪里以及在哪里复制它,但我在 POD 上没有 sudo :

如果我没有通过 Gitlab 站点上的应用程序面板安装 Runner,它就无法正常工作(这意味着我通过 helm 安装它并带有 -f 值,但它不适用于 Autodevops,并且它不会为每个 CI 创建一个 pod预期的)

任何解决方法或解决方案将不胜感激:)

先感谢您。

0 投票
1 回答
1086 浏览

kubernetes - K3S:如何通过 hub.docker.com 进行身份验证也拉取私有图像?

我有一个带有K3s的 Kubernetes 集群设置,我想从位于 hub.docker.com 的注册表中提取。尝试拉公共图像时这没有问题,但是当我尝试从 hub.docker.com 拉私有图像时。它找不到它们。

regcred我已经尝试使用我的 Docker 登录信息(请参阅此处)创建一个秘密,并将其添加到imagePullSecrets. 但这似乎不起作用。

如何告诉我的 K3s 集群使用 hub.docker.com 的私有部分进行身份验证,从而允许我在部署中提取私有图像?

谢谢

这是我的完整清单:

Regcred 看起来像这样:

吊舱状态:

运行命令时kubectl describe pod example-688b97d5d7-q9ngl给我:

0 投票
1 回答
1049 浏览

kubernetes - 在 k3s 上自定义 coredns 以将域直接指向集群负载均衡器

我正在尝试向 coredns 添加重写以将域指向集群负载均衡器(以便将该域的请求重定向回集群)。我似乎找不到影响 k3s 的 coredns 配置的方法。有没有办法改变它?

(这是为了解决https://github.com/jetstack/cert-manager/issues/1292#issuecomment-757283796的问题,其中 pod 尝试通过指向路由器 IP 的 DNS 名称联系集群中的另一个服务,这由于 NAT 的工作方式而失败。)

0 投票
2 回答
2214 浏览

docker - 带有 kubernetes 的 MacVlan 网络

我设置kubernetes cluster使用k3s. 我有一个主节点和两个节点。我在其中一个节点上创建了 dockermacvlan网络。我想实现下面提到的场景。

  1. 将 IP 分配给容器/pod。(用户定义的 IP,而不是集群 IP)。

q1.docker macvlan 有什么替代方案吗?

q2.我们可以在节点上运行命令吗(不是在 pod/container 上)?(在部署 pod/服务时)

q3.我们可以用用户定义的IP创建kubernetes网络吗?(我认为 LB/NP/Ingress 对用户定义的 IP 没有帮助,如果我错了,请纠正我!)