Я пытаюсь развернуть кластер KOPS в среде AWS без использования конфигурации Route53 DNS. Я новичок в KOPS и недостаточно разбираюсь в топологии сети. В моем кластере будет 3 главных узла.
Согласно моему требованию, мне нужно получить доступ к службам, работающим внутри этого кластера KOPS, от клиентов (вне кластера KOPS). Итак, я хотел бы назначить предварительно созданные эластичные IP-адреса всем главным узлам, поэтому я могу использовать эти предварительно созданные эластичные IP-адреса от клиентов для доступа к службам, работающим внутри кластера KOPS.
У меня вопрос: как я могу назначить заранее созданные эластичные IP-адреса всем главным узлам во время создания кластера KOPS?
Ниже я использую команду для создания кластера KOPS -
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
cluster.yaml
apiVersion: kops.k8s.io/v1alpha2
kind: Cluster
metadata:
creationTimestamp: null
name: test-kops.k8s.local
spec:
api:
loadBalancer:
type: Public
authorization:
rbac: {}
channel: stable
cloudProvider: aws
configBase: s3://{s3url}
etcdClusters:
- cpuRequest: 200m
etcdMembers:
- instanceGroup: master-ap-southeast-1a-1
name: "1"
- instanceGroup: master-ap-southeast-1a-2
name: "2"
- instanceGroup: master-ap-southeast-1a-3
name: "3"
memoryRequest: 100Mi
name: main
- cpuRequest: 100m
etcdMembers:
- instanceGroup: master-ap-southeast-1a-1
name: "1"
- instanceGroup: master-ap-southeast-1a-2
name: "2"
- instanceGroup: master-ap-southeast-1a-3
name: "3"
memoryRequest: 100Mi
name: events
iam:
allowContainerRegistry: true
legacy: false
kubelet:
anonymousAuth: false
kubernetesApiAccess:
- 0.0.0.0/0
kubernetesVersion: 1.17.12
masterPublicName: api.test-kops.k8s.local
networkCIDR: {vpcCIDR}
networkID: {vpcID}
networking:
amazonvpc: {}
nonMasqueradeCIDR: 100.64.0.0/10
sshAccess:
- 0.0.0.0/0
subnets:
- cidr: {subnetCIDR}
id: {subnetID}
name: ap-southeast-1a
type: Public
zone: ap-southeast-1a
topology:
dns:
type: Public
masters: public
nodes: public
---
apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
creationTimestamp: null
labels:
kops.k8s.io/cluster: test-kops.k8s.local
name: master-ap-southeast-1a-1
spec:
image: 099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200907
machineType: t3.medium
maxSize: 1
minSize: 1
nodeLabels:
kops.k8s.io/instancegroup: master-ap-southeast-1a-1
role: Master
rootVolumeSize: 40
subnets:
- ap-southeast-1a
additionalSecurityGroups:
- {securityGroup}
---
apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
creationTimestamp: null
labels:
kops.k8s.io/cluster: test-kops.k8s.local
name: master-ap-southeast-1a-2
spec:
image: 099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200907
machineType: t3.medium
maxSize: 1
minSize: 1
nodeLabels:
kops.k8s.io/instancegroup: master-ap-southeast-1a-2
role: Master
rootVolumeSize: 40
subnets:
- ap-southeast-1a
additionalSecurityGroups:
- {securityGroup}
apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
creationTimestamp: null
labels:
kops.k8s.io/cluster: test-kops.k8s.local
name: master-ap-southeast-1a-3
spec:
image: 099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200907
machineType: t3.medium
maxSize: 1
minSize: 1
nodeLabels:
kops.k8s.io/instancegroup: master-ap-southeast-1a-3
role: Master
rootVolumeSize: 40
subnets:
- ap-southeast-1a
additionalSecurityGroups:
- {securityGroup}
---
apiVersion: kops.k8s.io/v1alpha2
kind: InstanceGroup
metadata:
creationTimestamp: null
labels:
kops.k8s.io/cluster: test-kops.k8s.local
name: nodes
spec:
image: 099720109477/ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20200907
machineType: t3.medium
maxSize: 5
minSize: 2
nodeLabels:
kops.k8s.io/instancegroup: nodes
role: Node
rootVolumeSize: 40
subnets:
- ap-southeast-1a
additionalSecurityGroups:
- {securityGroup}