web-dev-qa-db-ja.com

エラー:サーバーにリソースタイプ「svc」がありません

取得 error: the server doesn't have a resource type "svc"このガイドに従ってkubectl構成をテストする場合:

https://docs.aws.Amazon.com/eks/latest/userguide/getting-started.html

詳細なエラー

$ kubectl get svc -v=8

I0712 15:30:24.902035   93745 loader.go:357] Config loaded from file /Users/matt.canty/.kube/config-test
I0712 15:30:24.902741   93745 round_trippers.go:383] GET https://REDACTED.yl4.us-east-1.eks.amazonaws.com/api
I0712 15:30:24.902762   93745 round_trippers.go:390] Request Headers:
I0712 15:30:24.902768   93745 round_trippers.go:393]     User-Agent: kubectl/v1.10.3 (darwin/AMD64) kubernetes/2bba012
I0712 15:30:24.902773   93745 round_trippers.go:393]     Accept: application/json, */*
I0712 15:30:25.425614   93745 round_trippers.go:408] Response Status: 401 Unauthorized in 522 milliseconds
I0712 15:30:25.425651   93745 round_trippers.go:411] Response Headers:
I0712 15:30:25.425657   93745 round_trippers.go:414]     Content-Type: application/json
I0712 15:30:25.425662   93745 round_trippers.go:414]     Content-Length: 129
I0712 15:30:25.425670   93745 round_trippers.go:414]     Date: Thu, 12 Jul 2018 14:30:25 GMT
I0712 15:30:25.426757   93745 request.go:874] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Unauthorized","reason":"Unauthorized","code":401}
I0712 15:30:25.428104   93745 cached_discovery.go:124] skipped caching discovery info due to Unauthorized
I0712 15:30:25.428239   93745 round_trippers.go:383] GET https://REDACTED.yl4.us-east-1.eks.amazonaws.com/api
I0712 15:30:25.428258   93745 round_trippers.go:390] Request Headers:
I0712 15:30:25.428268   93745 round_trippers.go:393]     Accept: application/json, */*
I0712 15:30:25.428278   93745 round_trippers.go:393]     User-Agent: kubectl/v1.10.3 (darwin/AMD64) kubernetes/2bba012
I0712 15:30:25.577788   93745 round_trippers.go:408] Response Status: 401 Unauthorized in 149 milliseconds
I0712 15:30:25.577818   93745 round_trippers.go:411] Response Headers:
I0712 15:30:25.577838   93745 round_trippers.go:414]     Content-Type: application/json
I0712 15:30:25.577854   93745 round_trippers.go:414]     Content-Length: 129
I0712 15:30:25.577868   93745 round_trippers.go:414]     Date: Thu, 12 Jul 2018 14:30:25 GMT
I0712 15:30:25.578876   93745 request.go:874] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Unauthorized","reason":"Unauthorized","code":401}
I0712 15:30:25.579492   93745 cached_discovery.go:124] skipped caching discovery info due to Unauthorized
I0712 15:30:25.579851   93745 round_trippers.go:383] GET https://REDACTED.yl4.us-east-1.eks.amazonaws.com/api
I0712 15:30:25.579864   93745 round_trippers.go:390] Request Headers:
I0712 15:30:25.579873   93745 round_trippers.go:393]     Accept: application/json, */*
I0712 15:30:25.579879   93745 round_trippers.go:393]     User-Agent: kubectl/v1.10.3 (darwin/AMD64) kubernetes/2bba012
I0712 15:30:25.729513   93745 round_trippers.go:408] Response Status: 401 Unauthorized in 149 milliseconds
I0712 15:30:25.729541   93745 round_trippers.go:411] Response Headers:
I0712 15:30:25.729547   93745 round_trippers.go:414]     Content-Type: application/json
I0712 15:30:25.729552   93745 round_trippers.go:414]     Content-Length: 129
I0712 15:30:25.729557   93745 round_trippers.go:414]     Date: Thu, 12 Jul 2018 14:30:25 GMT
I0712 15:30:25.730606   93745 request.go:874] Response Body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Unauthorized","reason":"Unauthorized","code":401}
I0712 15:30:25.731228   93745 cached_discovery.go:124] skipped caching discovery info due to Unauthorized
I0712 15:30:25.731254   93745 factory_object_mapping.go:93] Unable to retrieve API resources, falling back to hardcoded types: Unauthorized
F0712 15:30:25.731493   93745 helpers.go:119] error: the server doesn't have a resource type "svc"

AWSのEKSクラスターのスクリーンショット

enter image description here

バージョン

kubectl version

Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-28T20:03:09Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/AMD64"}
error: You must be logged in to the server (the server has asked for the client to provide credentials)

構成

Kubctl Config

$ kubectl config view

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACTED
    server: https://REDACTED.yl4.us-east-1.eks.amazonaws.com
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: aws
  name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      args:
      - token
      - -i
      - test
      command: heptio-authenticator-aws
      env:
      - name: AWS_PROFILE
        value: personal

AWS Config

cat .aws/config

[profile personal]
source_profile = personal 

AWS認証情報

$ cat .aws/credentials

[personal]
aws_access_key_id = REDACTED
aws_secret_access_key = REDACTED

〜/ .kube/config-test

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: REDACETED
    server: https://REDACTED.yl4.us-east-1.eks.amazonaws.com
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: aws
  name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      args:
      - token
      - -i
      - test
      command: heptio-authenticator-aws
      env:
      - name: AWS_PROFILE
        value: personal

同様の問題

9
Matt Canty

同様の問題が発生したので、awsサポートで解決できました。私が抱えていた問題は、ユーザーが想定したロールでクラスターが作成されたが、aws-cliで作成されたデフォルトのkube構成でkubectlがこのロールを想定していなかったことです。

Kube configのusersセクションでロールを提供することで問題を修正しました

users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      args:
      - token
      - -i
      - test
      - -r
      - <arn::of::your::role>
      command: aws-iam-authenticator
      env:
      - name: AWS_PROFILE
        value: personal

Heptio-aws-authenticatorがaws-iam-authenticatorに変更されたと思いますが、この変更によりクラスターを使用できるようになりました。

4
R.Taylor

401は権限の問題のように見えます。ユーザーはクラスターを作成しましたか?ドキュメント:「Amazon EKSクラスターを作成すると、IAMエンティティ(ユーザーまたはロール)にクラスターのRBAC構成のsystem:masterアクセス​​許可が自動的に付与されます。追加のAWSユーザーにクラスターとの対話機能を付与するには、編集する必要がありますKubernetes内のaws-auth ConfigMap。」

別のユーザーが作成した場合は、そのユーザーを使用して、kubectlを実行するようにCLIで構成する必要があります。

3
JamesIngold

CLIでクラスターの作成とkubectlの実行に使用される資格情報が同じであることを確認する必要があります。私の場合、コンソールを介してクラスターを作成しました。このクラスターは、kubectlが実際の永続的な資格情報を使用した場合に有効期限が切れるAWSの一時的な自動販売機の資格情報を取得しました。
エラーを修正するために、AWS CLIからクラスターも作成しました。

2
Linz

.kubeフォルダーのキャッシュとhttp-cacheを削除して、コマンドkubectl get svcを実行してみてください。また、config-ファイルが適切にインデントされていることを確認してください。構文エラーが原因で、そのエラーがスローされる場合があります。

2
user3805324

KUBECONFIG環境変数に複数の値があり、次のような問題が発生しました::/Users/my-user/.kube/config-firstcluster:/Users/my-user/.kube/config-secondcluster

環境変数の設定を解除してリセットし、値が1つだけになるようにして、それが機能するかどうかを確認します。

1
Erin M

UIでクラスターを作成した場合に可能な解決策

UIでクラスターを作成した場合、AWS rootユーザーがクラスターを作成した可能性があります。ドキュメントによると、「Amazon EKSクラスターが作成されると、クラスターを作成するIAMエンティティ(ユーザーまたはロール)は管理者(システム:マスター)のアクセス許可としてKubernetes RBAC承認テーブルに追加されます。最初は、そのIAMのみユーザーはkubectlを使用してKubernetes APIサーバーを呼び出すことができます。

クラスターにアクセスするIAMユーザーのアクセス許可を更新するには、最初にrootユーザーとしてAWS CLIにログインする必要があります。

  1. rootユーザーのアクセスキー を取得し、この情報をデフォルトユーザーの下の.aws/credentialsに配置する必要があります。コマンドaws configureを使用してこれを行うことができます

    これで、最初にクラスターを作成したrootユーザーとしてログインしているため、kubectl get svcは機能します。

  2. クラスターにaws-auth ConfigMapを適用 。これらのドキュメントのステップ2に従い、NodeInstanceRoleとして取得したOutput値を ステップ3:Amazon EKSワーカーノードの起動と設定 として使用します

  3. 非ルートIAMユーザーまたはロールをAmazon EKSクラスターに追加するには 、これらのドキュメントのステップ3に従います。 configmap/aws-authを編集し、kubectlセクションにmapUsersアクセスを必要とする他のユーザーを追加します。

  4. aws configureを再度実行し、非ルートユーザーからアクセスキー情報を追加します。

これで、AWS CLIからkubectlを使用してクラスターにアクセスできます。

0
Yasmin

私はこのエラーに遭遇しました、そして、それは[〜#〜] different [〜#〜] kube config問題でした。

error: the server doesn't have a resource type “svc”

エラーはおそらく非常に一般的です。

私の場合、解決策は認証局データの周りの引用符を削除することでした

(動作していません)

certificate-authority-data:"xyxyxyxyxyxy"

(ワーキング)

certificate-authority-data: xyxyxyxyxyxy
0
tdensmore