Ansible

在 KubeSpray Ansible 劇本中設置“cloud-provider”變數的最佳方法是什麼?

  • August 3, 2020

我正在使用 KubeSpray 的主分支。我使用 Terraform 使用contrib/terraform/aws. 但是,預設情況下未啟用 aws_cloud_provider。

雲文件中說要使用ansiblecloud-provider=aws playbook 命令來執行cluster.yamlplaybook 執行。但是,我也看到文件說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

引用自:https://serverfault.com/questions/1028745