Ошибка: сервер не имеет типа ресурса "svc"

Admins-MacBook-Pro: ~ Harshin $ kubectl cluster-info Мастер Kubernetes работает на http://localhost: 8080

Для дальнейшей отладки и диагностики проблем кластера используйте "kubectl cluster-info dump". ошибка: сервер не имеет типа ресурса "службы",

я следую этому документу

https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html?refid=gs_card

в то время как я пытаюсь проверить свою конфигурацию на шаге 11 configure kubectl для amazon eks

apiVersion: v1
clusters:
- cluster:
    server: ...
    certificate-authority-data: ....
  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
      command: heptio-authenticator-aws
      args:
        - "token"
        - "-i"
        - "kunjeti"
        # - "-r"
        # - "<role-arn>"
      # env:
        # - name: AWS_PROFILE
        #   value: "<aws-profile>"

Ответ 1

Измените "имя: kubernetes" на фактическое имя вашего кластера.

Вот что я сделал, чтобы проработать это через....

1. Включить подробный, чтобы убедиться, что файлы конфигурации читаются правильно.

kubectl get svc --v = 10

2. Модифицированный файл, как показано ниже:

apiVersion: v1
clusters:
- cluster:
    server: XXXXX
    certificate-authority-data: XXXXX
  name: abc-eks
contexts:
- context:
    cluster: abc-eks
    user: aws
  name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      command: aws-iam-authenticator
      args:
        - "token"
        - "-i"
        - "abc-eks"
        # - "-r"
        # - "<role-arn>"
      env:
        - name: AWS_PROFILE
          value: "aws"

Ответ 2

Я столкнулся с подобной проблемой, однако это не прямое решение, а обходное решение. Используйте команды AWS cli для создания кластера, а не консоли. В соответствии с документацией пользователь или роль, которые создают кластер, будут иметь главный доступ.

aws eks create-cluster --name <cluster name> --role-arn <EKS Service Role> --resources-vpc-config subnetIds=<subnet ids>,securityGroupIds=<security group id>

Убедитесь, что роль службы EKS имеет доступ к IAM (я дал Full, но AssumeRole, я думаю).

Роль машины EC2 должна иметь eks:CreateCluster и IAM. Работал для меня :)

Ответ 3

У меня была эта проблема, и я обнаружил, что она была вызвана настройкой ключа по умолчанию в ~/.aws/credentials. У нас есть несколько учетных записей AWS для разных клиентов, а также учетная запись "песочницы" для нашего собственного тестирования и исследований. Итак, наш файл учетных данных выглядит примерно так:

[default]

aws_access_key_id = abc

aws_secret_access_key = xyz

region=us-east-1


[cpproto]

aws_access_key_id = abc

aws_secret_access_key = xyz

region=us-east-1

[sandbox]

aws_access_key_id = abc

aws_secret_access_key = xyz

region=us-east-1

Я возился с нашей учетной записью песочницы, но раздел [default] указывал на другую учетную запись. После того, как я поместил ключи для песочницы в раздел по умолчанию, команда "kubectl get svc" работала нормально.

Похоже, нам нужен способ сообщить aws-iam-authenticator, какие ключи использовать так же, как --profile в aws cli.

Ответ 4

Я думаю, вы должны раскомментировать элемент "env" и изменить свое отношение к ~/.aws/credentials. Поскольку ваш aws_iam_authenticator требует точных учетных данных AWS.

См. Этот документ: https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html

Чтобы Аутентификатор AWS IAM для Kubernetes всегда использовал определенный профиль учетных данных AWS (вместо цепочки поставщиков удостоверений AWS по умолчанию), раскомментируйте строки env и замените его именем профиля.

Ответ 5

Вы также можете установить учетные данные в самом коде, используя команду set. Это сработало для меня