【问题标题】:How to resolve failing or missing response / Address is not allowed from custom kubernetes api service?如何解决自定义 kubernetes api 服务不允许响应失败或丢失响应/地址?
【发布时间】:2023-02-02 10:03:14
【问题描述】:

我目前正在尝试将 Prometheus 适配器安装到我的 AWS EKS Kubernetes 集群中。但是,Prometheus 适配器的关联 APIService 在连接到 Prometheus 适配器时遇到问题,并且其状态未更改为“可用”

当我运行 kubectl edit apiservice custom.metrics.k8s.io 时,我得到以下信息和相应的错误消息:

apiVersion: apiregistration.k8s.io/v1
kind: APIService
metadata:
  annotations:
    meta.helm.sh/release-name: adapter-test
    meta.helm.sh/release-namespace: monitoring
  creationTimestamp: "2022-11-29T11:00:36Z"
  labels:
    app.kubernetes.io/component: metrics
    app.kubernetes.io/instance: adapter-test
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: prometheus-adapter
    app.kubernetes.io/part-of: prometheus-adapter
    app.kubernetes.io/version: v0.10.0
    helm.sh/chart: prometheus-adapter-3.4.2
  name: v1beta1.custom.metrics.k8s.io
  resourceVersion: "644865077"
  uid: 50e1d07b-5db8-49b0-92d3-af1ec581a096
spec:
  group: custom.metrics.k8s.io
  groupPriorityMinimum: 100
  insecureSkipTLSVerify: true
  service:
    name: adapter-test-prometheus-adapter
    namespace: monitoring
    port: 443
  version: v1beta1
  versionPriority: 100
status:
  conditions:
  - lastTransitionTime: "2022-11-29T11:00:36Z"
    message: 'failing or missing response from https://192.168.2.20:6443/apis/custom.metrics.k8s.io/v1beta1:
      Get "https://192.168.2.20:6443/apis/custom.metrics.k8s.io/v1beta1": Address
      is not allowed'
    reason: FailedDiscoveryCheck
    status: "False"
    type: Available

版本:

Client Version: version.Info{Major:"1", Minor:"25", GitVersion:"v1.25.4", GitCommit:"872a965c6c6526caa949f0c6ac028ef7aff3fb78", GitTreeState:"clean", BuildDate:"2022-11-09T13:36:36Z", GoVersion:"go1.19.3", Compiler:"gc", Platform:"linux/amd64"}
Kustomize Version: v4.5.7
Server Version: version.Info{Major:"1", Minor:"22+", GitVersion:"v1.22.15-eks-fb459a0", GitCommit:"be82fa628e60d024275efaa239bfe53a9119c2d9", GitTreeState:"clean", BuildDate:"2022-10-24T20:33:23Z", GoVersion:"go1.16.15", Compiler:"gc", Platform:"linux/amd64"}

另一方面,我可以使用 curl 命令从带有 kubectl 的 PC 访问服务“https://192.168.2.20:6443/apis/custom.metrics.k8s.io/v1beta1”,没有任何问题: 我得到命令

curl -k --header "Authorization: Bearer <<MYTOKEN>>" "https://172.20.44.186:443/apis/custom.metrics.k8s.io/v1beta1"

答案:

{
  "kind": "APIResourceList",
  "apiVersion": "v1",
  "groupVersion": "custom.metrics.k8s.io/v1beta1",
  "resources": [
    {
      "name": "namespaces/container_threads",
      "singularName": "",
      "namespaced": false,
      "kind": "MetricValueList",
      "verbs": [
        "get"
      ]
    },
    {
      "name": "pods/container_threads",
      "singularName": "",
      "namespaced": true,
      "kind": "MetricValueList",
      "verbs": [
        "get"
      ]
    }
  ]
}

但是,在适配器的日志中,我找不到任何有关来自 API 服务的请求的条目。 如何进一步分析错误并排除错误?

【问题讨论】:

    标签: kubernetes amazon-eks kubernetes-apiserver kubernetes-networking prometheus-adapter


    【解决方案1】:

    您正在运行自定义 CNI(Calico、Weave 等)吗?

    见:https://github.com/kubernetes-sigs/prometheus-adapter/issues/268#issuecomment-729480071

    tldr;您不妨确保:

    • hostNetwork.enabled: true
    • dnsPolicy=ClusterFirstWithHostNet

    【讨论】:

      猜你喜欢
      • 2016-03-25
      • 2011-02-01
      • 2022-08-23
      • 2017-03-14
      • 2015-04-14
      • 2012-07-27
      • 2014-12-01
      相关资源
      最近更新 更多