Ошибка: сервер не имеет типа ресурса "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. Это сработало для меня