Anthos 错误消息由 APME1234
格式的错误 ID 组成,其中 1234
是唯一编号,后跟问题描述和问题解决方法建议。本文档列出了其中的每条错误消息。
APME1000 ImageAccessError
此错误表明,生成错误的组件无法在指定注册表中找到一个或多个必需映像。
请验证:
- 所需的映像存在于 Container Registry 中。
- 是否可从错误来源访问注册表。
- 工作站是否有权从注册表读取和拉取。
- 工作站具有文件
${HOME}/.docker/config.json
并已正确配置,以访问注册表。
APME1001 InvalidRegistryInputError
--private-registry
标志值必须符合格式 hostname[:port]/repository/location
,且不能以架构(例如 https://
)开头。主机名不能为 localhost
或 127.0.0.1
。Kubernetes 使用该值来提取映像。
标志值示例:
fictional.registry.example/repository/location
fictional.registry.example:10443/repository/location
10.200.0.2/library
APME2000 KubeContextNotFoundError
此错误表示找不到指定的 kubecontext。
请验证:
KUBECONFIG
文件存在。- 如果未指定
KUBECONFIG
环境变量,$HOME/.kube/config
文件存在。 KUBECONFIG
文件中存在上下文。
APME2001 UserClusterKubeconfigError
此错误表示找不到用户集群的 kubeconfig。
请验证:
- 管理员集群中存在命名空间
cluster-CLUSTER_NAME
。 - 命名空间
cluster-CLUSTER_NAME
下存在集群对象。 - 命名空间
cluster-CLUSTER_NAME
下存在 SecretCLUSTER_NAME-kubeconfig
。 - 您拥有访问上述对象所需的所有必要权限。
APME2002 ManagementCenterNotSchedulableError
此错误表示无法安排 Anthos Management Center 在集群的节点上运行。
如果管理员集群没有任何工作器节点,并且出于安全原因,集群默认不在控制层面节点上安排工作负载,则通常会发生此错误。
要解决此问题,请按以下步骤操作:
[首选] 将管理员 NodePool 添加到管理员集群。
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl apply -f <path/to/example-nodepool.yaml>
示例 YAML:
apiVersion: baremetal.cluster.gke.io/v1 kind: NodePool metadata: name: node-pool-1 namespace: cluster-admin spec: clusterName: admin nodes: - address: <IP address of the worker node machine. e.g. 10.200.0.4>
从控制层面节点中移除控制层面污点,以便非系统工作负载可以在控制层面节点上运行。
注意:请考虑此解决方案的缺点:
控制层面可用性:运行额外工作负载会增加控制层面节点上的熵。如果机器资源受限、配置错误或工作负载具有意外行为,则可能会对 Kubernetes API 服务器产生负面影响。
安全:容器不是强安全边界。如果恶意工作负载从容器中逃逸,则可能会获得集群控制平面的控制权。如果集群管理其他用户集群,则攻击者可能会访问管理员集群中的凭据,并也会获得用户集群的控制权。
费用:只要
node-role.kubernetes.io/master:NoSchedule
污点存在,Anthos 就不会对控制层面节点收费。移除污点并允许用户工作负载在控制层面节点上运行后,会像任何其他节点一样向这些节点收费。如需了解详细的价格信息,请参阅价格页面。
允许工作负载在所有控制层面节点上运行的示例命令:
KUBECONFIG=${ADMIN_KUBECONFIG} kubectl taint nodes --all node-role.kubernetes.io/master:NoSchedule-
APME2003 AdminClusterNotUpgradedError
此错误表示必须先升级管理员集群,然后才能升级 Management Center。
新版 Anthos 中的 Management Center 可能需要在新版本的管理员集群上运行。
更新管理员集群配置文件,并运行 actl clusters baremetal upgrade
admin
命令以完成升级。如需了解详细说明,请参阅升级管理员集群。
APME3000 AISLoginClientValidationError
在 Anthos 1.9 中已弃用
APME3001 PermissionDeniedError
该错误指出没有足够的权限来执行该操作。
要进一步排查问题,请执行以下操作:
识别已分配的角色。
- 方法 1:使用 Anthos Management Center Console
- 打开 Management Center 的
Identity and Access
标签页。 - 转到
Identity and Access
屏幕中的Access
标签页以查看已分配的角色。
- 打开 Management Center 的
- 方法 2:使用 kubectl 命令:
kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="{your account}")]}[{.roleRef.kind},{.roleRef.name}]{end}' Example: kubectl get rolebinding,clusterrolebinding --all-namespaces -o jsonpath='{range .items[?(@.subjects[0].name=="foo@bar.com")]}[{.roleRef.kind},{.roleRef.name}]{end}' [ClusterRole,anthos-platform-admin-read-only]
- 方法 1:使用 Anthos Management Center Console
请参阅预设授权角色和权限,以查看可用于预设授权角色的权限。
如果分配了具有较低权限的角色,而执行某项操作需要具有更高权限的角色,或者如果角色分配有误,请让管理员检查是否可以授予访问权限。
如果角色有足够的权限,可按预授权角色和权限操作并且
APME3001-PermissionDeniedError
显示不正确,请在以下位置报告错误:anthos-private-mode-feedback@google.com
。
APME3002 AuthMethodPreflightCheckError
该错误指出提供的身份验证方法设置无法通过预检检查。
如果您提供了 OIDC 设置:
- 仔细检查 OIDC 提供商的网址是否正确。
- 确保 OpenID 配置发现页面
https://<your OIDC provider URL>/.well-known/openid-configuration
可供访问且包含有效配置。 - 如果您的 OIDC 提供商使用自签名 SSL 证书,请务必将该证书输入 OIDC 提供商证书字段。
APME3003 UserCredentialNotFoundError
该错误指出没有用户凭据则无法执行请求的操作。
为了执行该请求,请启用身份验证或让您的管理员启用身份验证。如需设置 OIDC 身份验证,请参阅使用 OIDC 进行身份验证。
APME4001 ObservabilityOperatorUpgradeError
此错误表示在升级可观测性组件(作为升级 Anthos 的一部分)期间发生故障。即使系统报告此错误,升级后的可观测性堆栈可能仍然会正常运行。
如需检查升级后的可观测性堆栈是否正常运行,请在 anthos-management-center
命名空间中检查 Observability
类型的 default
对象上 Installed
条件的 status
:
kubectl get -n anthos-management-center observability default -o jsonpath='
{.status.conditions[?(@..type=="Installed")].status}{"\n"}'
如果 status
为 True
,则可观测性堆栈会继续正常运行。错误报告中列出的缓解过程是可选的。如果状态不是 True
,请执行错误报告中列出的缓解过程。