我试图在不使用Route53 DNS配置的情况下在AWS环境中部署KOPS集群。我对KOPS还是很陌生,并且对网络拓扑没有足够的了解。在我的集群中,将有3个主节点。
根据我的要求,我需要从客户端(KOPS群集外部)访问此KOPS群集中运行的服务。因此,我想为所有主节点分配预先创建的弹性IP,因此我可以使用来自客户端的那些预先创建的弹性IP来访问KOPS集群中运行的服务。
我的问题是在KOPS集群创建过程中如何为所有主节点分配预先创建的弹性IP?
下面是我当前使用的用于创建KOPS集群的命令-
python Voiceassistance.py
File "Voiceassistance.py", line 6
driver = webdriver.Chrome('C:\Users\Ashok\Downloads\chromedriver_win32\chromedriver.exe')
^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
cluster.yaml
kops create cluster \
--state=${KOPS_STATE_STORE} \
--master-zones=${MASTER_ZONES} \
--zones=${ZONES} \
--name=test-kops.k8s.local \
--vpc=${VPC_ID} \
--image="099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200907" \
--master-volume-size=40 \
--master-count=${Master_Count} \
--node-volume-size=40 \
--node-count=${Node_Count} \
--networking=amazon-vpc-routed-eni \
--subnets=${SUBNET_IDS} \
--utility-subnets=${SUBNET_IDS} \
--network-cidr=${NETWORK_CIDR} \
--ssh-public-key=~/.ssh/id_rsa.pub \
--dry-run -oyaml > cluster.yaml
kops create -f cluster.yaml
kops create secret --name ${NAME} sshpublickey admin -i ~/.ssh/id_rsa.pub
kops update cluster test-kops.k8s.local --yes
答案 0 :(得分:0)
由于控制平面节点在 ASG 中运行,因此您无法将弹性 IP 直接分配给 EC2 实例。您必须通过 ELB 才能访问它们。 ELB 也不能有弹性 IP。
另一种方法是使用 DNS 记录,但由于您也在使用上面的 gossip,这在此处不适用。
在 kOps 1.19 中,可以将 NLB 用于控制平面,但目前 kOps 不支持为其指定 EIP。由于您想使用 IP 访问 API 以外的其他服务,因此这也可能不是您想要的。