google-kubernetes-engine

GKE 中 Karpenter 的 NodePool 的 NodeClassRef 应该是什么?
google-kubernetes-engine

GKE 中 Karpenter 的 NodePool 的 NodeClassRef 应该是什么?

我在 GCP 中创建了一个 GKE 集群,并希望在其上安装 Karpenter 以实现自动扩展。在尝试安装 Karpenter 时,pods 给出错误,要求创建需要 NodeClassRef 的 NodeClaim 资源 (https://github.com/aws/karpenter-provider-aws/blob/main/pkg/apis/crds/karpenter.sh_nodepools.yaml)。 我可以找到 AWS 即 EC2NodeClass 的 NodeClassRef 对象,但找不到 GCP 的 NodeClassRef 对象。...

Admin

Ansible“无法创建临时目录”(GCP)
google-kubernetes-engine

Ansible“无法创建临时目录”(GCP)

我在 Ansible playbook 中遇到了一个问题,该剧本既配置了 Kubernetes 集群,又配置了我们云基础架构内的其他服务器。具体来说,当我在 ansible.cfg 文件中配置“remote_tmp”变量时,就会出现问题。尽管设置了此变量,但 Kubernetes 集群内的容器似乎忽略了它,导致出现以下错误消息: fatal: [localhost]: UNREACHABLE! => {"changed": false, "msg": "Failed to create temporary directory. In some case...

Admin

尝试在 Ubuntu 22 上从头设置 K8 集群,但 kubelet 无法注册节点
google-kubernetes-engine

尝试在 Ubuntu 22 上从头设置 K8 集群,但 kubelet 无法注册节点

kubelet 服务显示以下错误 Apr 05 14:13:06 estk8worker0 kubelet[90209]: E0405 14:13:06.863258 90209 kubelet_node_status.go:92] "Unable to register node with API server" err="Post \"https://:6443/api/v1/nodes\": dial tcp :6443: connect: connection refused" node="estk8worker0" Apr 05 14:13:0...

Admin

在 GKE 中部署的两个具有相同配置的后端应用出现意外行为
google-kubernetes-engine

在 GKE 中部署的两个具有相同配置的后端应用出现意外行为

问题背景 我没有其他词来描述我在工作场所 Kubernetes 部署中发现的部署行为, 我们有五个使用 Koa.js 的后端应用程序的 Kubernetes 部署,一个开发部署,两个暂存部署和两个生产部署。 API 分为两个版本,通过文件夹名称 v3 和 v4 来区分。两个版本的 Koa 路由器都访问相同的控制器和服务功能,两个路由器完全相同,不同之处在于 v4 比 v3 增加了更多路由。 两个生产部署仅在名称上有所不同。其余部署配置保持不变(例如:isafe-prod-android-api、isafe-prod-ios-api)。两个部署也共享相同的配置...

Admin

如何查找导致 GKE 中 AUTO_REPAIR_NODES 事件的原因
google-kubernetes-engine

如何查找导致 GKE 中 AUTO_REPAIR_NODES 事件的原因

我们在之前稳定的 GKE 集群上突然遇到了一大堆AUTO_REPAIR_NODES事件,但无法查明原因。我们找到了这个页面:https://cloud.google.com/kubernetes-engine/docs/how-to/node-auto-repair#repair_criteria 建议的项目是: 节点报告NotReady多个时间 节点多次检查未返回任何状态 节点的启动磁盘已满的时间太长。 我们检查了日志,没有发现任何有关 的日志消息NotReady。 我们已经检查了豆荚在突然自动修复的节点上,它们在自动修复事件发生之前都在接收流量,并且...

Admin

如何删除 Google Kubernetes Engine Autopilot 中不健康的节点?
google-kubernetes-engine

如何删除 Google Kubernetes Engine Autopilot 中不健康的节点?

我在 GKE autopilot 上运行的 Kubernetes 集群有一个不健康的节点。该节点有状态Ready,但其上运行的所有 Pod 都有CreateContainerError状态,并且似乎卡在轮询容器映像上。 例子: (正常拉取 101 秒(x1326 持续 4 小时 49 分钟)kubelet 容器映像“gke.gcr.io/cluster-proportional-autoscaler:v1.8.10-gke.3@sha256:274afbfd520aef0933f1fefabddbb33144700982965f9e3632caabb055...

Admin

GKE Autopilot-使用预订
google-kubernetes-engine

GKE Autopilot-使用预订

我在使用 nvidia t4 GPU 创建 GKE 部署时遇到了一些问题(Node scale up in zones europe-west1-b associated with this pod failed: GCE out of resources. Pod is at risk of not being scheduled.),所以我想我可以尝试创建资源预留,然后在我的 GKE 集群中使用它。 我已经创建了一个资源预留,描述如下: $ gcloud compute reservations describe reservation-t4-gpu -...

Admin

如何在服务项目的 GKE LoadBalancer 服务中使用共享 VPC 宿主项目的保留外部 IP 地址
google-kubernetes-engine

如何在服务项目的 GKE LoadBalancer 服务中使用共享 VPC 宿主项目的保留外部 IP 地址

我找到了两个参考资料(这里和这里) 在 GCP 文档中说我可以在主机项目中保留一个 IPv4 地址并在服务项目中使用它。 我的情况是,我有一个主机项目,其中有一个共享 VPC 网络,并且我在那里预留了一个外部 IP 地址。现在我想按照所述将此 IPv4 地址分配给 GKE LoadBalancer 服务在这里即。我想spec.loadBalancerIP在k8s 服务。 我确信共享 VPC 的配置有些正确,因为我有两个集群(一个在主机项目中,一个在服务项目中)正在运行,并且我能够从 podB@service-k8s-cluster 查询 podA@host-...

Admin

Kubernetes API 从 Pod 内部返回 403 Forbidden,而 ClusterRole 似乎已正确绑定到 Pod 服务帐户
google-kubernetes-engine

Kubernetes API 从 Pod 内部返回 403 Forbidden,而 ClusterRole 似乎已正确绑定到 Pod 服务帐户

我有一个在 k8s pod(Google Kubernetes Engine 1.25)中运行的 Python 脚本,它查询 K8S API 来创建 VaultStaticSecret 的资源。 为了简洁起见,我将粘贴 Helm Chart 模板: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: {{ .Release.Name }} rules: - apiGroups: ["secrets.hashicorp.com"] resources: [...

Admin

Google Cloud Kubernetes 预留
google-kubernetes-engine

Google Cloud Kubernetes 预留

最近我们的 GKE 环境被暂停。重新激活帐户后,Kubernetes 无法正常工作,因为 3 个服务器中只有 1 个可用。两个区域报告了 ZONE_RESOURCE_POOL_EXHAUSTED 30 分钟,直到我们添加了新的节点池。 Google 告诉我们这是正常现象,我们应该使用预留实例。我怀疑预留实例是否能解决这个问题,因为我确信当帐户被暂停时预留实例会被终止。 我很难相信创建 GKE 集群时需要预留实例。 我关心的不是服务器为什么会宕机,而是 GKE 在没有人工干预的情况下无法恢复。如果需要,我希望 GCP 控制台能够自动执行此操作。这就是我向 Se...

Admin

所有集群资源均已启动,但:1 个节点中有 1 个节点运行状况不佳
google-kubernetes-engine

所有集群资源均已启动,但:1 个节点中有 1 个节点运行状况不佳

无法使用共享 vpc 创建 gke 自动驾驶仪集群。相同的共享 vpc 与标准私有集群配合使用效果很好。多次重复此操作,但出现相同错误。按照谷歌故障排除建议操作,但无济于事。 gke auto pilot 节点/实例组总是无法创建。安装进度卡在健康检查的 83% 处。 ...

Admin

GCP Workload Identity 适用于某些工作负载,但不适用于其他工作负载,即使 K8s 服务帐户相同
google-kubernetes-engine

GCP Workload Identity 适用于某些工作负载,但不适用于其他工作负载,即使 K8s 服务帐户相同

我们在两个不同的 GKE 集群中部署微服务,一个用于测试,另一个用于生产。 我们的工作负载利用了工作负载身份。在“测试环境”中一切正常,所有工作负载都共享已绑定到 GCP 服务帐户的同一 Kubernetes 服务帐户。 在“生产环境”中,集群由三个节点池支持(我为了完整性而包含此信息,但我不确定它是否重要),并且我们在工作负载身份方面存在问题。 在生产环境中,在某些容器中,如果我们使用 shell 获取元数据或使用 gcloud,我们会意外地发现当前用户是与节点关联的用户,而不是来自工作负载身份的用户。对于其他 pod,工作负载身份可以按预期工作。 另一件...

Admin

GKE Ingress 足以作为 gunicorn 的代理吗?
google-kubernetes-engine

GKE Ingress 足以作为 gunicorn 的代理吗?

我在 GKE(Google Kubernetes Engine)容器中运行 Gunicorn 后面的 Python 应用程序。该应用程序位于 GKE Ingress(即 HTTP(S) 负载均衡器)后面。Gunicorn 文档称 我们强烈建议在代理服务器后使用 Gunicorn。 文档继续说,他们建议使用 Nginx 作为代理服务器。 我的问题是:鉴于我的应用程序已经位于 HTTP(S) 负载均衡器后面,添加额外的 Nginx 层有什么好处吗? ...

Admin

如何过滤命令 gcloud container operations list?语法是什么?
google-kubernetes-engine

如何过滤命令 gcloud container operations list?语法是什么?

如果您有 20 个 GKE 集群,gcloud container operations list 会返回太多数据。 Google Cloud 的官方文档缺少如何进行过滤的良好示例: 他们的文档只是提到--filter=[EXPRESSION],如果没有表达式应该是什么样子的语法,这根本就没有任何帮助...... gcloud container operations list --help只是提到请gcloud topic filters参阅更多信息,试图解释,但如果没有例子就很难理解。 那么问题是过滤应该是什么样的? ...

Admin

部署多集群/多区域网关并且使用 GKE Autopilot 具有冗余状态服务?
google-kubernetes-engine

部署多集群/多区域网关并且使用 GKE Autopilot 具有冗余状态服务?

我希望两个集群分别位于不同的区域,这样我就有了基本的区域冗余。我想要运行的一些服务是有状态的(包括跟踪用户会话)。我不希望在集群发生故障时保持状态。我只想要一个集群 B,如果集群 A 发生故障,我可以将剩余的流量引导到它。我发现有很多方法可以做到这一点。我查看了以下链接中的示例: https://cloud.google.com/kubernetes-engine/docs/how-to/migrate-gke-multi-cluster#migrate_to_multi-cl..。 https://cloud.google.com/kubernetes-...

Admin