我正在使用KubeSpray的主分支。我使用Terraform来使用contrib/terraform/aws中的脚本提供AWS资源。但是,默认情况下不启用aws_cloud_provider。
云层文档说在ansible playbook命令中使用cloud-provider=aws来运行cluster.yaml剧本是被执行的。但是,我也看到了一些文档,其中说cloud-provider应该设置为external。
考虑到集群将在AWS上运行,设置cloud-provider的最佳方法是什么?
发布于 2020-08-03 22:52:03
我对这个问题有两个答案。
一个-将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 443/TCP 109shttps://serverfault.com/questions/1028745
复制相似问题