问题标签 [kubespray]

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

kubernetes - 主节点缺少节点角色 - 在 Kubespray 的帮助下完成 Kubernetes 安装

干净安装 3 个节点(2 个主节点和 3 个节点)的 Kubernetes 集群后,主节点也被分配为工作节点。

成功安装后,我得到了节点的以下角色。如图所示,主节点缺少节点角色的位置。

库存/mycluster/hosts.yaml

网络插件:法兰绒

用于调用 ansible 的命令:

如何使主节点也作为工作节点工作?

Kubectl 描述 node1 输出:

0 投票
2 回答
2215 浏览

docker - 为什么我无法从其他节点 IP 访问 kubernetes pod?

我在 Kubespray 的帮助下安装了 kubernetes 集群。具有 3 个节点(2 个主节点和 1 个工作节点)的集群。节点1 - 10.1.10.110,节点2 - 10.1.10.111,节点3 - 10.1.10.112

我在 node1 (10.1.10.110) 中部署了这个 pod,并暴露了 nodeport 服务,如图所示。

服务说明

问题:我可以从 node1:31520(实际部署 pod 的位置)访问服务,但无法从其他节点(node2:31520(或)node3:31520)访问相同的服务

谁能建议我缺少什么?

0 投票
1 回答
184 浏览

kubernetes - Kubeadm 替换节点

我有带有 3 个节点“VM”的 K8s 集群,在通过 kubespray“基于 kubeadm 的工具”安装的所有 3 个节点“未污染的主节点”上安装了 Etcd 进行主/工作

现在我想用另一个替换一个虚拟机。是否有直接的方法可以这样做,因为唯一的解决方法是通过 kubespray scale.yml ex:node4 和节点 5 添加 2 个节点以始终拥有奇数个 ETCD,然后删除额外的节点 3 和节点 5 保留节点 4

我不喜欢这种方法。

欢迎任何想法

此致

0 投票
0 回答
83 浏览

kubernetes - 编辑 Kubernetes 1.15 集群中的审计策略

使用 kubespray 2.11 安装 K8s 1.15.7,如果我在安装时设置审计相关标志(即 cluster.yml),它可以正常工作。但是在已经运行的集群上,如果我更改 pod 清单以添加审计标志(即策略文件、日志路径),它不会启用审计并给出以下错误。

此外,编辑 roles/kubernetes/master/defaults/main/main.yml以启用审计和运行 upgrade-cluster.yml 失败。

只能在第一次安装集群时启用审计吗?

0 投票
1 回答
299 浏览

kubespray - kubespray 是否安装任何日志轮换策略?

我浏览了 GitHub ( https://github.com/kubernetes-sigs/kubespray ) 项目,但没有看到对日志轮换的引用。

有标准方法吗?

0 投票
1 回答
90 浏览

kubespray - 如何更改当前上下文

我使用 kubespray 安装的 Kubernetes 集群。我在文件中将集群名称定义为 cluster.devops group_vars/k8s-cluster/k8s-cluster.yml,. 安装 Kubernetes 集群后。kube confi 文件中的当前上下文是kubernetes-admin@cluster.devops. 我想当前上下文是cluster.devops,

即当前上下文与集群名称相同。怎么做?

0 投票
0 回答
445 浏览

kubernetes - kube-apiserver 没有使用 docker-dns

我正在使用 kubespray 2.14 部署 k8s 集群。大多数配置是默认的。我已经为 kubectl 配置了 OIDC 身份验证。我使用 Keycloak 作为本地部署的身份验证服务器。流量由自签名证书保护,域 keycloak.example.com 由本地 dns 服务器解析。我为 example.com 域添加了一个 CoreDNS 外部区域。

kube-apiserver 使用主机网络,因此默认情况下 CoreDNS 不解析名称。

只要我使用resolvconf_mode: host_resolvconf. 然后将 coredns 地址添加到 hosts/etc/resolv.conf文件中,kube-apiserver 使用 CoreDNS 解析自定义域。但是这种模式使我的集群非常不稳定。我不想深入研究这个问题,因为我已经花了太多时间。

为了解决稳定性问题,我回到了默认设置resolvconf_mode: docker_dns,但后来我遇到了 OIDC 问题。

kube-apiserver 无法解析 keycloak.example.com 域,因为它从主机 (8.8.8.8) 查询名称服务器。我认为它应该查询 docker_dns,正如 kubespray 文档中所述:

https://github.com/kubernetes-sigs/kubespray/blob/master/docs/dns-stack.md

但是,对于 hostNetwork: true POD,k8s 将让 docker 设置 DNS 设置。不是由 k8s 启动/管理的 Docker 容器也将使用这些 docker 选项。

有没有办法配置 kubespray 库存来解决这个问题,而无需手动向每个主节点添加名称服务器?这是我的库存配置部分:

docker-dns.conf

0 投票
1 回答
198 浏览

kubernetes - Kubespray 和 Ansible,如何分离配置(即清单和其他配置文件)

首先,我是一个完整的 ansible 剧本菜鸟。我正忙于了解我工作场所的混乱情况。我尝试遵循自述文件的快速入门指南,同时也遵循我的公司 kubespray fork。现在真正困扰我的一件事是,我们个人集群的配置散布在整个分叉中。有没有办法将集群的个人配置文件与 kubespray 存储库分开?我的想法是我有一个 kubespray 目录,它是 kubespray 存储库的分支或主控,当运行“kubespray”时,我将集群的配置提供给 kubespray。因为目前我看不到这是一种干净且易于管理的方式,可以通过提交来维护集群资源,同时在我想应用新版本时尝试更新 kubespray。

0 投票
1 回答
1265 浏览

kubernetes - 使用 kubespray 的 Kubernetes kubelet-certificate-authority 会导致主节点的证书验证错误

我正在使用 kubespray 在本地设置一个 k8s 集群。

我正在尝试使用 CIS Benchmark 文档来强化 kubernetes 集群。

对于--kubelet-certificate-authority参数,我在 apiserver 和 kubelets 之间建立了 TLS 连接。/etc/kubernetes/manifests/kube-apiserver.yaml然后,我在主节点上编辑 API 服务器 pod 规范文件,并--kubelet-certificate-authority为证书颁发机构设置参数,如下所示:--kubelet-certificate-authority=/etc/kubernetes/ssl/apiserver.crt

但是有了这个,我不再能够顶级部署 pod(使用 helm),出现已知错误:

[centos@infra-vm ~]$ helm list 错误:转发端口:错误升级连接:错误拨号后端:x509:无法验证 192.168.33.143 的证书,因为它不包含任何 IP SAN

192.168.33.143主节点IP地址在哪里。

我已经检查了上述证书授权,并且具有 IP SAN: 在此处输入图像描述

所以我真的不知道问题出在哪里。

可以尝试帮助弄清楚发生了什么吗?

0 投票
1 回答
980 浏览

ansible - 为什么 kubespray ansible 无法匹配主机

我是通过 kubespray 安装 kubernetes,我的 kubespray 版本是 v2.11.0,我按照官方文档一步一步安装。但是当我执行“ansible-playbook -i inventory/mycluster/hosts.yml --become --become-user=root cluster.yml”时,我得到以下与主机不匹配的信息。

我是主机 yaml。我认为 hosts.yaml 是毫无疑问的,如下所示:

谁能告诉我,我哪里错了?</p>