问题标签 [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.
kubernetes - API Server:由于错误而无法验证请求:无效的不记名令牌
我设置了一个包含 3 个主节点和 2 个工作节点的示例 Kubernetes 集群。我试图将它连接到 OpenId 提供程序(在我的情况下为 Keycloak)。但是在查询 API 时,我从 kubectl 收到以下消息:
或通过卷曲:
在 API 服务器日志中它说
根据jwt.io ,我的令牌似乎是有效的。
API 服务器的配置
在 API 服务器中,我指定了以下参数:
我必须指定 CA 文件,因为用于 keycloak 的证书是自签名的
证书似乎可以工作,因为没有 CA 文件的 curl 会导致错误;不指定 CA 文件的地方:
智威汤逊令牌
我的 JWT 令牌的有效负载如下所示:
当我尝试使用生成的服务帐户(来自 kubernetes)的令牌登录时,一切正常。
附加信息
环境是通过 Kubespray 设置的,API 服务器参数按以下方式指定:
谢谢你的帮助。
azure - 当其他在 Kubespray 中丢失时,Kubernetes 集群节点不会自动创建
我已经使用 repo https://github.com/kubernetes-sigs/kubespray成功部署了一个多主 Kubernetes 集群,并且一切正常。但是当我停止/终止集群中的一个节点时,新节点没有加入集群。我已经使用 KOPS 部署了 kubernetes,但是当一个节点被删除时,节点是自动创建的。这是 kubespray 中的预期行为吗?请帮忙..
kubernetes - Rook Ceph Operator 在检查集群状态时挂起
我已经在wireguard vpn之上使用calico在数字海洋Ubuntu 18.04 LTS droplets上设置了一个k8s集群,并且能够使用traefik作为外部LB设置nginx-ingress。我现在正在按照https://rook.io/docs/rook/master/ceph-quickstart.html上的快速入门,使用 rook ceph 设置分布式存储,但似乎监视器从未达到法定人数(即使只有一个)。实际上,监视器本身是一个范围,但操作员或任何其他监视器似乎都不知道这一点,并且操作员在尝试检查状态时挂起。
我尝试过解决网络问题,从wireguard、calico和ufw一路走来。我什至将 ufw 设置为默认情况下暂时允许所有流量,以确保我不允许一个端口但流量在另一个接口上(我有 wg0、eth1、tunl0 和 calico 接口)。
我没有成功地遵循 ceph 故障排除指南:http: //docs.ceph.com/docs/master/rados/troubleshooting/troubleshooting-mon/#recovering-a-monitor-s-broken-monmap
我已经有 4 天了,我没有解决方案。
这是我设置存储集群的方法
跑步kubectl get pods
回报
但是,当我尝试检查监视器的状态时,我从操作员舱中得到:
顺便说一句,从操作员那里 ping 监控器可以正常工作
操作员日志 https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-operator-log
监控日志 https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-log
监控一个状态,获取者直接通过socket形成监控pod https://gist.github.com/figassis/0a3f499f5e3f79a430c9bd58718fd29f#file-mon-a-status
kubernetes - kubespray openstack terraform“错误:找不到模块”错误
我是 Kubespray 的新手,想在 Openstack 上安装 Kubernetes 集群。我关注https://github.com/kubernetes-sigs/kubespray/tree/master/contrib/terraform/openstack,但在运行初始化时出错terraform init ../../contrib/terraform/openstack
ssh - kubespary:ansible 无法使用 ssh 将数据发送到 ansible-playbook 命令中的节点
在使用 kubespray 部署生产就绪 kubernetes 集群的教程 https://dzone.com/articles/kubespray-10-simple-steps-for-installing-a-product 的第 10 步中,运行 ansible-playbook 命令时出错。错误是:错误!SSH 错误:无法将数据发送到远程主机。确保可以通过 ssh 访问此主机
ssh passwordless 在节点之间处于活动状态,我可以在没有密码的情况下从每个节点运行 ssh。谁能帮我?谢谢这是我的命令,它的输出:
kubernetes - “--cri-socket”标志和“init阶段”参数之间的kubeadm兼容性
我正在尝试设置 kubeadm 使用哪个 cri-o 套接字!
为此,我应该使用标志--cri-socket /var/run/crio/crio.sock
当前命令的格式为kubeadm init phase <phase_name>
. 我必须给它加上--cri-socket
标志。
我以这种方式编辑了命令kubeadm init --cri-socket /var/run/crio/crio.sock phase <phase_name>
。
不幸的是我得到了错误 Error: unknown flag: --cri-socket
。
=> 看来参数phase <phase_name>
和标志--cri-socket /var/run/crio/crio.sock
不兼容。
我该如何解决?
谢谢
#################更新1######################
文件: /etc/kubernetes/kubeadm-config.yaml
kubernetes - Kubespray 失败并显示“找到多个 CRI 套接字,请使用 --cri-socket 选择一个”
遇到的问题
使用Kubespray、CRI-O和Cilium部署集群时,我收到一个错误,提示有多个 CRI 套接字可供选择。
完全错误
有趣的部分
我试过的
- 1)我试图在
--cri-socket
里面设置标志/var/lib/kubelet/kubeadm-flags.env
:
=> 没有区别
- 2)我已经检查过
/etc/kubernetes/kubeadm-config.yaml
,但它已经包含以下部分:
=> 它已经以criSocket
标志结束,所以无事可做......
- 3) 尝试编辑 ansible 脚本以将其添加
--cri-socket
到现有命令中,但失败并显示Unknow command --cri-socket
现存的 :
试过:
理论
似乎问题来自与标志 kubeadm init phase
不兼容的命令......(见第3点)--crio-socket
即使使用配置文件设置了正确的套接字(参见第 2 点),kubeadm init phase
也没有使用它。
任何想法都会被欣赏;-)
thx
kubernetes - Kubernetes nginx 入口控制器返回 504 错误
我们的本地 Kubernetes/Kubespray 集群突然停止了 nginx-ingress 和节点端口服务之间的路由流量。对入口端点的所有外部请求都返回“504 - 网关超时”错误。
我如何诊断出什么东西坏了?
我已经确认容器/pod 正在运行,节点应用程序已经启动,如果我执行到 pod 中,那么我可以运行本地 curl 命令并从应用程序中获得响应。
我检查了入口 pod 上的日志,流量正在到达,nginx 正在尝试将流量转发到服务端点/节点端口,但它报告了一个错误。
我也尝试通过节点端口直接卷曲到节点,但没有得到响应。
我查看了 ipvs 配置并且设置看起来有效(例如,节点有规则在节点端口转发流量服务端点地址/端口)
kubernetes - Kubeadm 无法在升级时签署证书
在使用 kubespray 将 Kubernetes 从 1.14 升级到 1.15 期间,我的团队在“升级第一个主服务器”步骤中遇到了以下消息的阻塞问题:
尝试隔离任务并手动运行 kubeadm 命令行会导致相同的错误消息:
甚至尝试手动更新证书:
最终找到了解决方案并发布在下面。
ansible - Ansible 并将变量从先前的 include_role 传递到以下 include_role
我正在尝试将 Kubespray 的所有角色包装在块/救援块中,所以我不得不从通常的roles
包含中移动,如下所示:
对此:
a4-roles/tasks/main.yml 是:
问题在于,kubespray-defaults
以及其他角色正在设置roles
块中后续角色正在使用的一些变量和默认值。使用include_role
这些变量时,默认值会丢失。有什么办法可以保留它们并将它们传递给下一个角色?