问题标签 [rancher-rke]

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 回答
25 浏览

kubernetes - Kubernetes 中的日志审计

我正在使用以下资源来设置 RKE2 Kubernetes 集群。

为 Rancher 搭建高可用的 RKE2 Kubernetes 集群

快速入门配置

我有一个配置文件 /etc/rancher/rke2/config.yaml。我能够创建一个运行良好的 k8s 集群,但我有几个问题。

我需要更改日志审核设置,例如日志文件的最大大小、保留天数

但这些不是这些选项的配置标志。是我找到的所有可用标志的列表。我应该如何更改这些值?

另外,我还有一个疑问。我没有--audit-policy-file在配置文件中使用标志,但存在这些选项。(此输出来自服务器的kubectl describe命令kube-api

所以,我假设这是默认行为,对吧?

有人可以帮我解决这些问题吗?

我是 k8s 和 rke2 的新手,所以如果有人有更多可以帮助我的资源,请随时分享。

谢谢

0 投票
2 回答
893 浏览

kubernetes - Rancher:kubernetes 集群卡在等待中。“没有到主机的路由”

我先在 CentOS 8 上搭建了一个 Kubernetes 集群。我按照这里找到的方法:https ://www.tecmint.com/install-a-kubernetes-cluster-on-centos-8/

然后我构建了一个 Ubuntu 18.04 虚拟机并在上面安装了 Rancher。我可以很好地访问 Rancher 网站,并且一切似乎都在 Rancher 方面工作,除了我无法将我的 kubernetes 集群添加到它。

当我使用“添加集群”功能时,我选择了“其他集群”选项,为其命名,然后单击创建。然后我将不安全的“集群注册命令”复制到主节点。它似乎接受命令就好了。

在故障排除中,我发出了以下命令:kubectl -n cattle-system logs -l app=cattle-cluster-agent

我得到的输出如下:

如您所见,我收到“无主机路由”错误消息。但是,我可以使用其 IP 地址 ping 牧场主 VM。

它似乎试图在集群内使用 resolv.conf 并希望使用 10.96.0.10 来解析 192.168.188.189(我的 Rancher VM)的 IP 地址。但它似乎无法解决它。

我在想我有某种 DNS 问题阻止我使用主机名。虽然我已经编辑了主节点和工作节点上的 /etc/hosts 文件,以包含每个设备的条目。我可以使用它们的主机名 ping 设备,但我无法使用 : 访问 pod。当我尝试这样做时,我也会收到“没有路由到主机”的错误消息。看这里:

我怀疑这是我无法将集群加入牧场主的根本原因。

编辑:我想为这个问题添加更多细节。我的每个节点(主节点和工作节点)在防火墙上都打开了以下端口:

对于 CNI,Kubernetes 集群使用的是 Weavenet。

每个节点(主节点和工作节点)都配置为在其网络配置中使用我的主主 DNS 服务器(它也是一个活动目录域控制器)。我已经为 DNS 服务器中的每个节点创建了 AAA 记录。节点未加入域。但是,我还编辑了每个节点的 /etc/hosts 文件以包含以下记录:

我发现我可以使用“curl k8s-worker1.mydomain.com:30370”,成功率约为 33%。但我会认为 /etc/hosts 文件将优先于使用我的家庭 DNS 服务器。

最后,我注意到一个额外的异常。我发现集群没有跨三个工作节点进行负载平衡。如上所示,我正在运行一个名为“hello-world”的部署,它基于具有 20 个副本的 bashofmann/rancher-demo 映像。我还为 hello-world 创建了一个 nodeport 服务,它将 nodeport 30370 映射到每个相应 pod 上的端口 8080。

如果我打开我的网络浏览器并转到http://192.168.188.191:30370那么它将加载网站但仅由 k8s-worker1 上的 pod 提供。它永远不会加载任何其他工作节点上的任何 pod 提供的网站。这可以解释为什么我只能获得约 33% 的成功,只要它由我在我的 url 中指定的同一个工作节点提供服务。

0 投票
0 回答
28 浏览

kubernetes - kubernets 端点在循环中出现/消失

我只是用 rke 部署了一个新的集群,但我发现了一个奇怪的问题。当完全没有 pod 崩溃时,端点会循环出现/消失。我的 kubernets 版本是 v1.18.20。有任何想法吗??

0 投票
0 回答
396 浏览

rancher-rke - rke up 错误:FATA[0000] 集群必须至少有一个 etcd 平面主机:无法连接到以下 etcd 主机

我正在尝试为 Rancher 安装 rke,然后运行:rke config,创建 cluster.yml
和 cluster.rkestate,然后运行:rke up 并得到错误:

FATA[0000] 集群必须至少有一个 etcd 平面主机:无法连接到以下 etcd 主机 []

我该如何解决?

0 投票
0 回答
92 浏览

rancher - 无法从 Rancher UI 编辑 yaml

使用rancher管理少数k8s aks集群,但是之前我们可以从rancher UI编辑manifest yaml,但目前无法从rancher UI编辑k8s对象清单。

当前版本的牧场主:2.4.5

在此处输入图像描述

0 投票
1 回答
53 浏览

kubernetes - How to install Istio ingress,egress and other components as DeamonSet in Cluster

We have a HA (High Availability) requirement where we want to deploy multiple replicas of Ingress, Egress as DaemonSet to handle heavy load.

I went through the istio documentation and site, to understand deployment models, but it doesnt achieve the usecase.

0 投票
0 回答
241 浏览

proxy - 使用代理设置 Rancher

我正在尝试使用 Rancher UI 为位于代理服务器(Squid)后面的 VM 设置集群。我在 Rancher 命令中添加了环境变量 HTTPS_PROXY,集群已启动并运行并连接到 Rancher。Rancher 表明集群是健康的,但是牛集群代理 pod 失败了。我为他们找到了一些日志

time="2021-10-20T08:27:15Z" level=info msg="监听 /tmp/log.sock" time="2021-10-20T08:27:15Z" level=info msg="Rancher 代理版本v2.5.9 正在启动"time="2021-10-20T08:28:15Z" level=fatal msg="查找cattle-system/cattle ca/token: 找不到服务账号cattle-system/cattle: 获取"https ://10.43.0.1:443/api/v1/namespaces/cattle-system/serviceaccounts/cattle“:服务不可用”

在此处输入图像描述

我发现一些文章可能与 Squid 配置有关,所以我尝试检查 Squid 配置,但网络 10.0.0.0/8 允许在那里。

0 投票
0 回答
55 浏览

bash - 如何在 k3s Airgap 安装中提供标志和环境变量

我正在尝试通过转换我的k3s脚本安装curl -sfL

使用命令 安装 AirgapINSTALL_K3S_SKIP_DOWNLOAD=true /usr/local/bin/install.sh :在 shell 脚本中。

我想K3S_KUBECONFIG_MODE="644" INSTALL_K3S_EXEC="--flannel-backend=none --cluster-cidr="$cluster_cidr" --disable=traefik" sh -INSTALL_K3S_SKIP_DOWNLOAD安装中传递相同的标志和 env var,就像我在最上面的 curl 命令中给出的一样?

最上面的 curl 命令正在运行,但是在用 SKIP_DOWNLOAD 替换 curl 后它失败了。

PS:这是未能设置标志和变量:

有人可以帮我吗?

0 投票
0 回答
49 浏览

docker - K8s 环境 - 从 Pod 卷曲一个端点(指向外部数据库)失败并超时

问题陈述:

K8s 环境 - 从 Pod 卷曲 Endpoint(指向外部数据库)因超时而失败。

K8s 集群详情:使用 Rancher Kubernetes Engine (RKE) 和 Docker 作为容器运行时托管的 3 节点集群。

节点:

由于此设置使用 RKE,因此 apiserver、kubelet 在所有节点上作为 docker 容器运行

Pod 和 Endpoint 位于同一个命名空间中。

pod内的命令:

卷曲超时并失败。但是,如果我们从 pod 外部(即节点上)卷曲实际的数据库 ip 和端口,它会提供预期的响应。

我们正在尝试使用 ip route 和 tracepath 实用程序跟踪 curl 拍摄期间发出的数据包的路由。

ip route 命令每次在 pod 中发出时都会提供相同的响应。但是,由于多个 pod 在集群中共享相同的 IP(创建 pod 容器的节点 IP),因此 tracepath 每次提供不同的路径。

显示了在执行 tracepath 命令期间每次出现的不同路径。请注意,一旦请求到达网关,我们端点的服务 ip 的路径总是相同的。即使对于像 google.com 这样的一般事物,到达网关后的路径也是相同的。因此,网关后显示的路径已被删除,并且仅显示了输出中不断变化的部分。

'[the-ip]' 在所有情况下都是相同的 IP 地址,它是我们的 pod(我们正在从其运行)运行的节点的 IP 地址。

在每种情况下,网关之前的路径都是由 Rancher 作为守护程序集运行的不同 pod。

我们还在 pod 的 eth0 接口处执行了 tcpdump,并确定请求通过 kube-system 命名空间中的 coredns pod。但是,coredns pod 中没有输出日志表明请求的传入或传出。卷曲一些通用网站(如 google.com)时也会发生同样的情况,除了 curl 到 google.com 成功而数据库端点的服务和端口失败(我们的例子)。

我们应该注意对特定日志记录或组件的任何响应,以识别请求失败的路由点。

0 投票
0 回答
8 浏览

kubernetes - 有什么方法可以为通过 Rancher2 Terraform 提供程序启动的 RKE 集群 API 服务器使用自定义 SSL 证书?

我正在通过Rancher Terraform Provider启动 Kubernetes 集群。在资源配置中有 rke_config,但不幸的是,似乎没有任何方法可以像RKE Terraform 提供者那样定义自定义证书。Rancher 有一些关于如何使用自定义证书的文档,但它们都使用 CLI 而不是 Web 界面或 Terraform。我的主要目标是添加证书,以便为集群授权端点使用 FQDN,它允许 kubectl 直接访问集群,而不是通过 Rancher 代理。