在 KubeSpray Ansible 剧本中设置“云提供商”变量的最佳方法是什么?

在 KubeSpray Ansible 剧本中设置“云提供商”变量的最佳方法是什么?

我正在使用 KubeSpray 的主分支。我使用 Terraform 使用 中的脚本配置 AWS 资源contrib/terraform/aws。但是,默认情况下未启用 aws_cloud_provider。

cloud-provider=aws文档说在 ansible playbook 命令中使用 来cluster.yaml运行 playbook。但是,我也看到文档说cloud-provider应该设置为external

cloud-provider如果集群将在 AWS 上运行,最佳设置方法是什么?

答案1

我对这个问题有两个答案。

- 将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

相关内容