Kubernetes 名前空間が「終了」状態で停止する

Kubernetes 名前空間が「終了」状態で停止する

Kubernetes名前空間が「終了」状態で停止している問題があります。実行すると、kubectl get ns cattle-monitoring-system -o json|jq名前空間の状態に関するエラーメッセージが生成され、名前空間の状態内の条件がcustom.metrics.k8s.io/v1beta1表示されます。DiscoveryFailed

E1213 08:02:39.979034  953148 memcache.go:287] couldn't get resource list for custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request
{
  "apiVersion": "v1",
  "kind": "Namespace",
  "status": {
    "conditions": [
      {
        "lastTransitionTime": "2023-12-12T14:53:40Z",
        "message": "Discovery failed for some groups, 1 failing: unable to retrieve the complete list of server APIs: custom.metrics.k8s.io/v1beta1: the server is currently unable to handle the request",
        "reason": "DiscoveryFailed",
        "status": "True",
        "type": "NamespaceDeletionDiscoveryFailure"
      },
    ]
  }
}

名前空間を正常に削除するには、この問題をどのように解決する必要がありますか?

答え1

遭遇する問題は、Kubernetes APIサーバーが名前空間のシャットダウンを防ぐcustom.metrics.k8s.io/v1beta1 APIを取得できないことに関連しています。この問題を解決する手順は次のとおりです。

リンクされたAPIServiceを確認してください。

custom.metrics.k8s.io/v1beta1 に APIService があるかどうかを調べます。

kubectl get apiservices.apiregistration.k8s.io -o json|jq  '.items[]|select(.metadata.name=="v1beta1.custom.metrics.k8s.io")'

出力は次のようにする必要があります

{
  "apiVersion": "apiregistration.k8s.io/v1",
  "kind": "APIService",
  ...
  "status": {
    "conditions": [
      {
        "message": "service/example-service in \"example-namespace\" is not present",
        "reason": "ServiceNotFound",
        "status": "False",
        "type": "Available"
      }
    ]
  }
}

APIServiceに関連するアクティブコンポーネントがないことを確認してください。

次のコマンドを実行します。example-service以前に生成した出力に基づいて調整します。

for c in configmaps secrets deployments statefulsets pods services; do
    echo "Checking for $c related to example-service"
    kubectl get $c -A | grep example-service
done

出力がない場合は、クラスタに APIService に関連するアクティブコンポーネントがないことを確認します。

API サービスの削除

kubectl delete apiservice v1beta1.custom.metrics.k8s.io

APIServiceを削除した後も、名前空間は終了し続ける必要があります。予期しない問題があるかどうかをクラスターを監視します。

関連情報