问题标签 [k3d]

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 投票
1 回答
521 浏览

kubernetes - 如何在 k3s / k3d 中找到并调用 kube-apiserver(有 Calico 和没有 Calico)?

我想使用kube-apiserver启用/禁用准入控制器(例如kube-apiserver --enable-admission-plugins=NamespaceLifecycle,但我无法在任何地方找到它。

当我运行以下命令时,我在任何地方都看不到它:

我认为这可能是由于使用了 Calico,但即使创建没有 Calico 的集群仍然显示 no kube-apiserver

在哪里kube-apiserver?如何在 k3d 中启用和禁用控制器?

0 投票
0 回答
418 浏览

kubernetes - 在 k3s 集群中启用/配置审计日志(使用 k3d 设置集群)

我目前正在尝试在 k3s 集群中启用和配置审计日志。目前,我正在使用 k3d 来设置我的 k3s 集群。有没有办法配置审计日志?

我知道您可以在使用 k3d 创建集群时解析 k3s 服务器参数。所以,我尝试了这个:

一个明显的问题是直到现在集群中还没有审计策略。因此,它在创建集群时崩溃。

也尝试过,使用以下方法设置集群:

然后 ssh 到主节点,在想要的目录中创建了策略文件,但是我找不到将集群变量audit-log-path设置为该目录的方法。因此,这些政策将不适用。

使用 minikube 执行此操作非常简单(因为它也有文档记录),但我无法让它与 k3d 一起使用 - 文档中也没有任何关于此的内容。但我敢肯定,必须有一种方法可以在 k3s 上配置审计日志,而不使用像Falco.

有人知道如何解决这个问题吗?或者想分享一些类似的经验?

0 投票
0 回答
191 浏览

docker - K3d 和 OpenFaas 中的本地 Docker 注册表

我正在修补 OpenFaas 和 K3D,以便为本地开发构建无服务器基础架构。为了有效地工作,我想用 K3D 在本地添加一个 docker 注册表并让 OpenFaas 从那里提取图像,但是我对如何使用主机的 IP 作为注册表源感到困惑。

为了创建集群,我使用了以下命令

所以构建示例函数工作正常,但显然 OpenFaas/Kubernetes 将无法访问 docker 注册表

我想到的唯一解决方案是在 K3d 中配置一个可以解析到主机的 Docker 注册表的 DNS 服务。

有谁知道如何更容易做到这一点?

幸运的是,生产系统不需要这个,因为它们会从外部注册表中提取图像。

0 投票
1 回答
37 浏览

kubernetes - 如何使外部 REST API(在我的主机上的 .Net 中运行)在 K8s 中从服务或外部名称访问?

我有一个 REST API 在我的笔记本电脑上本地运行https://localhost:5001/something。我希望它可以通过K8s DNS 名称在 Kubernetes 集群内访问。例如,在 Pod 中运行的应用程序可以使用some-service而不需要整个 Url。

另外,由于localhost是相对于主机的,我如何在主机上而不是在 K8s 集群中获取or ServiceExternalNamelocalhost

我试过docker.host.internal(如建议的here)但没有奏效。这来自 K8s 文档说它不能是环回:

端点 IP 不得为:环回(IPv4 为 127.0.0.0/8,IPv6 为 ::1/128)或本地链路(IPv4 为 169.254.0.0/16 和 224.0.0.0/24,fe80::/64对于 IPv6)。

我在跑:

  • 主机: Ubuntu 20.04
  • K8s: k3d
  • Web API:(Linux 上的 .Net Core 3.1,创建者dotnet new webapi MyAPI
0 投票
1 回答
80 浏览

kubernetes - 带有 Kubernetes 设置的 Rails 应用程序中的错误网关

我尝试在 Kubernetes 集群中设置一个 Rails 应用程序(它是在我的本地机器上使用 k3d 创建的。

k3d cluster create --api-port 6550 -p "8081:80@loadbalancer" --agents 2

kubectl create deployment nginx --image=nginx

kubectl create service clusterip nginx --tcp=80:80

我可以运行一个 Ingress,它正确地公开了一个正在运行的 Nginx 部署(“欢迎使用 nginx!”) (我从这里举了这个例子:https ://k3d.io/usage/guides/exposing_services/

所以我知道我的设置正在运行(使用 nginx)。

现在,我很想将那个入口指向我的 Rails 应用程序,但我总是得到一个“坏网关”。(我也试图指出我的其他服务(elasticsearch、kibana、pgadminer),但我总是得到一个“坏网关”。

我可以看到我的 Rails 应用程序在我的 Dockerfile 的最后几行 (http://localhost:62333/) 运行:

为什么我的 API 有“坏网关”但 Nginx 没有?

它与我由 kompose convert 创建的选择器和标签有关吗?

这是我完整的 Rails-API 部署:

api-deployment.yml

api-service.yml

入口.yml

configmap.yml

我希望我没有错过任何东西。

先感谢您

编辑:添加端点,在评论中请求:

种类:端点

0 投票
1 回答
669 浏览

kubernetes - 在 docker 容器中运行 K3S 服务器,并在另一个 docker 容器中连接 K3S 代理

我知道k3d可以通过 神奇地做到这一点k3d cluster create myname --token MYTOKEN --agents 1,但我试图弄清楚如何“手动”做最简单的版本。我想创建一个类似的服务器:

并连接一个类似的代理:

有谁知道这里需要转发哪些端口?我该如何设置?几乎我尝试的所有事情,代理都会抱怨端口 6444 已经在使用中,即使我尽可能多地禁用了服务器的任何组合--no-deploy servicelb --disable-agent --no-deploy traefik

随意禁用除服务器和代理之外的所有内容,我试图让这个超级简单,但现在只是把我的头撞到墙上。谢谢!

0 投票
1 回答
1101 浏览

docker - 如何使用 k3d 通过唯一端口公开两个应用程序/服务?

*交叉发布自 k3d GitHub 讨论:https ://github.com/rancher/k3d/discussions/690

我试图通过两个端口公开两个服务。作为替代方案,我也很想知道如何在同一个端口上公开它们并使用不同的路由。我尝试了几篇文章和很多配置。让我知道k3d + k3s / kubernetes + traefik(+ klipper?)的网络哪里出了问题......

我发布了一个例子: https ://github.com/ericis/k3d-networking

目标:

  • 通过端口 8080 到达主机上的“app-1”
  • 通过端口 8091 到达主机上的“app-2”

脚步

*参见:repo 中的文件

  1. 配置k3d集群并将应用程序端口公开给负载均衡器

  2. 在 Kubernetes 中使用“deployment.yaml”部署应用并公开容器端口

  3. 在 Kubernetes 中公开服务。在这里,我尝试了两种方法。

    • 使用命令行

    • 使用“service.yaml”

  4. 使用“ingress.yaml”在 kubernetes 之外公开服务

0 投票
3 回答
4633 浏览

kubernetes - 如何通过配置在 k3d/k3s 中公开 traefik v2 仪表板?

*交叉发布到k3d github 讨论Rancher 论坛中的线程以及traefik 的社区讨论板

2020 年的教程是指编辑 traefik configmap。它去哪儿了?

traefik安装说明参考了几种公开仪表板的方法:

  1. 这有效,但不是持久的:使用 1-time 命令kubectl -n kube-system port-forward $(kubectl -n kube-system get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:9000

  2. 我无法让它工作:创建一个“IngressRoute”yaml 文件并将其应用于集群。这可能是由于 Klipper LB 和/或我的无知。

traefik 部署未使用 configmap

对于 2-server、2-agent 集群...kubectl -n kube-system describe deploy traefik不显示任何 configmap:

没有“traefik”配置图

并且,kubectl get -n kube-system cm显示:

traefik pod 没有使用 configmap

描述吊舱也不会出现任何问题。kubectl -n kube-system describe pod traefik-....结果也没有配置图。

Traefik 端口正在使用,但没有响应

但是,我确实看到了使用端口的 traefik pod 的参数:

但是,这些端口并未暴露。因此,我尝试使用 进行端口转发kubectl port-forward pods/traefik-97b44b794-r9srz 9000:9000 8000:8000 8443:8443 -n kube-system --address 0.0.0.0,但是当我curl -v localhost:9000(或 8000 或 8443)和curl -v localhost:9000/dashboard时,我得到“404 Not Found”。

将终端连接到 traefik 后,我发现本地端口已打开,但似乎没有任何响应:

版本

0 投票
0 回答
124 浏览

kubernetes - 在与主节点相同的机器上启动工作节点

我正在使用k3s。在官方的 k3s 文档中,它说“服务器节点被定义为运行命令的机器(裸机或虚拟)k3s server。工作节点被定义为运行k3s agent命令的机器。” 有没有办法在一台机器上运行多个节点?对于 k3s 的标准用例,这似乎是不可能的,是否有任何轻量级的虚拟化选项可以使机器像几台不同的机器一样工作,但没有通常与虚拟化相关的计算开销?这可以用k3d实现吗?

0 投票
1 回答
208 浏览

kubernetes - 安装 Dgraph 失败。得到“拨号拨号 tcp 时出错:查找 dgraph-zero-0.dgraph-zero.hm.svc.cluster.local:没有这样的主机”

我正在尝试安装 Dgraph。这是我所做的:

dev通过 k3d 创建了一个集群

dev-cluster-config.yaml文件:

我安装了 Dgraph

如您所见,我的dgraph-alpha-0有问题。 在此处输入图像描述

这是我的dgraph-alpha-0日志:

笔记

里面。

然而,它们实际上是存在的

我在这个集群中的其他服务可以毫无问题地相互交谈。

我发现如果我删除--cluster-domain=dev.k8s-hongbomiao.com或更改为--cluster-domain=cluster.local当我通过 k3d 创建集群时,可以毫无问题地安装 Dgraph HA。

但是,我需要设置集群域来做一些集群相关的工作。

有集群域时如何安装 Dgraph HA?谢谢

更新:

当我通过