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
此错误表示无法安排管理中心在集群的节点上运行。
如果管理员集群没有任何工作器节点,并且出于安全原因,集群默认不在控制层面节点上安排工作负载,则通常会发生此错误。
要解决此问题,请按以下步骤操作:
[首选] 将管理员 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
此错误表示必须在升级 Anthos 不公开模式管理中心之前升级管理员集群。
新版 Anthos 不公开模式中的管理中心可能需要在新版本的管理员集群上运行。
更新管理员集群配置文件,并运行 actl clusters baremetal upgrade
admin
命令以完成升级。如需了解详细说明,请参阅升级管理员集群。
APME3000 AISLoginClientValidationError
为了让用户能够使用联合凭据(OIDC 身份验证)访问集群,管理员需要生成 ADMIN_OIDC_KUBECONFIG。
ADMIN_ACTL_AUTH_LOGIN_CONFIG=admin-actl-auth-login-config.yaml
ADMIN_OIDC_KUBECONFIG=oidc-kubeconfig
actl auth login --login-config=${ADMIN_ACTL_AUTH_LOGIN_CONFIG} --cluster=admin --kubeconfig=${ADMIN_OIDC_KUBECONFIG}
${KUBECTL_ANTHOS_CONFIG}
是从管理中心下载的输入配置文件,而 ${ADMIN_OIDC_KUBECONFIG}
是输出 kubeconfig 文件位置。请勿与他人(甚至是员工或管理员)分享此输出配置文件。
要继续操作,请检查您的输入值:
--login-config
和--kubeconfig
标志值不为空。--login-config
和--kubeconfig
标志值不同。--login-config
和--kubeconfig
标志值具有有效的文件路径。
使用 --skip-validation
标志可跳过验证。
APME3001 PermissionDeniedError
该错误指出没有足够的权限来执行该操作。
要进一步排查问题,请执行以下操作:
识别已分配的角色。
- 方法 1:使用管理中心
- 打开管理中心的
Identity and Access
标签页。 - 转到
Identity and Access
屏幕中的Access
标签页以查看已分配的角色。
- 打开管理中心的
- 方法 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:使用管理中心
请参阅预设授权角色和权限,以查看可用于预设授权角色的权限。
如果分配了具有较低权限的角色,而执行某项操作需要具有更高权限的角色,或者如果角色分配有误,请让管理员检查是否可以授予访问权限。
如果角色有足够的权限,可按预授权角色和权限操作并且
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 进行身份验证。
APME4000 VersionSupportDiscontinuedError
此错误表示一个或多个用户集群中仍在使用已弃用的 Anthos 功能版本。
此错误消息中将包含相关 Anthos 功能的名称及相关用户集群的列表。例如,以下消息表示在用户集群 user-cluster-2
和 user-cluster-2
中安装了 1.6.0
版本的 Anthos Config Management,并且必须要对其进行升级。
APME4000: found clusters using the to-be-deprecated Anthos Config Management version "1.6.0": ["user-cluster-1", "user-cluster2"]
Mitigation: Please upgrade the Anthos Config Management on those clusters
在 0.9 版本中,只有 Anthos Config Management 不再支持旧版本。如需解决此错误,请按照说明升级用户集群中的 Anthos Config Management 版本。