Я использую основную ветку 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