Ansible
在 KubeSpray Ansible 劇本中設置“cloud-provider”變數的最佳方法是什麼?
我正在使用 KubeSpray 的主分支。我使用 Terraform 使用
contrib/terraform/aws
. 但是,預設情況下未啟用 aws_cloud_provider。雲文件中說要使用ansible
cloud-provider=aws
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
二
取消註釋 group_vars/all.yml 中的 cloud_provider 選項並將其設置為 ‘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