Назад | Перейти на главную страницу

Как лучше всего установить переменную «облачный провайдер» в KubeSpray Ansible playbook?

Я использую основную ветку KubeSpray. Я использую Terraform для предоставления ресурсов AWS с помощью скриптов в contrib/terraform/aws. Однако по умолчанию aws_cloud_provider не включен.

В облако документ говорит использовать cloud-provider=aws в команде ansible playbook для запуска cluster.yaml playbook выполнен. Однако я также видел документацию, в которой говорится cloud-provider должен быть установлен на external.

Как лучше всего установить cloud-provider учитывая, что кластер будет работать на AWS?

У меня есть два ответа на этот вопрос.

один - добавить cloud-provider вариант для вашего ansible-playbook как показано ниже.

ansible-playbook \
  -vvvvv \
  -i ./inventory/hosts \
  ./cluster.yml \
  -e ansible_user=centos \
  -e cloud_provider=aws \
  -e bootstrap_os=centos \
  --become \
  --become-user=root \
  --flush-cache \
  -e ansible_ssh_private_key_file=$PKI_PRIVATE_PEM \
  | tee kubespray-cluster-$(date "+%Y-%m-%d_%H:%M").log

два

Раскомментируйте параметр cloud_provider в group_vars / all.yml и установите для него значение 'aws'

доказательство

Я пробовал первый ответ. Доказательством этого является то, что AWS ELB выходит из состояния ожидания.

$ kubectl -n ingress-nginx get svc
NAME                                 TYPE           CLUSTER-IP      EXTERNAL-IP                                                                     PORT(S)                      AGE
ingress-nginx-controller             LoadBalancer   10.233.57.196   aa....amazonaws.com   80:32111/TCP,443:31854/TCP   109s
ingress-nginx-controller-admission   ClusterIP      10.233.11.133   <none>                                                                          443/TCP                      109s