问题标签 [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.
raspberry-pi - Rook-Ceph 部署:创建 csi-cephfsplugin-provisioner 和 csi-rdb-plugin-provisioner 时出错
我在树莓派上设置 rook ceph 集群时遇到问题。由于没有官方的手臂支持,我正在使用 raspbernetes 图像,例如手臂上的指南车,我希望我在正确的地方寻求指导。类似G1和G2的指南基本上做同样的事情,但没有考虑手臂。
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
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 机器中的卷文件夹的某些访问权限问题有关?
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 )
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安装
在服务器上,我已经完成了:
在代理上:
在此先感谢,它让我发疯!
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预期的)
任何解决方法或解决方案将不胜感激:)
先感谢您。
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
给我:
kubernetes - 在 k3s 上自定义 coredns 以将域直接指向集群负载均衡器
我正在尝试向 coredns 添加重写以将域指向集群负载均衡器(以便将该域的请求重定向回集群)。我似乎找不到影响 k3s 的 coredns 配置的方法。有没有办法改变它?
(这是为了解决https://github.com/jetstack/cert-manager/issues/1292#issuecomment-757283796的问题,其中 pod 尝试通过指向路由器 IP 的 DNS 名称联系集群中的另一个服务,这由于 NAT 的工作方式而失败。)
docker - 带有 kubernetes 的 MacVlan 网络
我设置kubernetes cluster
使用k3s
. 我有一个主节点和两个节点。我在其中一个节点上创建了 dockermacvlan
网络。我想实现下面提到的场景。
- 将 IP 分配给容器/pod。(用户定义的 IP,而不是集群 IP)。
q1.docker macvlan 有什么替代方案吗?
q2.我们可以在节点上运行命令吗(不是在 pod/container 上)?(在部署 pod/服务时)
q3.我们可以用用户定义的IP创建kubernetes网络吗?(我认为 LB/NP/Ingress 对用户定义的 IP 没有帮助,如果我错了,请纠正我!)