Я настраиваю кластер AKS с несколькими AZ, я хотел бы назначить stati c publi c IP, который я создал для этого loadbalancer. Вот что у меня есть:
#### Creating a Public static IP ####
resource "azurerm_public_ip" "lb-public-ip1" {
name = "${var.public_ip_name}"
location = "${var.location}"
resource_group_name = "${var.resource_group_name}"
allocation_method = "Static"
ip_version = "IPv4"
sku = "standard"
#domain_name_label =
tags = {
Environment = "${var.environment}"
owner = "${var.resource_owner}"
created-by = "${var.policy_created_by}"
}
depends_on = ["null_resource.module_depends_on"]
}
data "azurerm_public_ip" "lb-public-ip1" {
name = "${azurerm_public_ip.lb-public-ip1.name}"
resource_group_name = "${azurerm_public_ip.lb-public-ip1.resource_group_name}"
depends_on = ["null_resource.module_depends_on"]
}
resource "null_resource" "module_depends_on" {
triggers = {
value = "${length(var.module_depends_on)}"
}
}
#### Creating AKS Cluster ####
resource "azurerm_kubernetes_cluster" "k8s" {
name = "${var.cluster_name}"
location = "${var.location}"
resource_group_name = "${var.resource_group_name}"
dns_prefix = "${var.dns_prefix}"
kubernetes_version = "1.14.8"
linux_profile {
admin_username = "ubuntu"
ssh_key {
key_data = "${var.key_data}"
}
}
default_node_pool {
availability_zones = ["1","2"]
enable_auto_scaling = true
enable_node_public_ip = false
max_count = "8"
min_count = "2"
name = "default"
node_count = "${var.node_count}"
os_disk_size_gb = "${var.os_disk_size}"
type = "VirtualMachineScaleSets"
vm_size = "Standard_DS2_v2"
}
role_based_access_control {
enabled = true
}
service_principal {
client_id = "${var.client_id}"
client_secret = "${var.client_secret}"
}
addon_profile {
kube_dashboard {
enabled = true
}
oms_agent {
enabled = "${var.oms_agent_activation}"
log_analytics_workspace_id = "${var.log_analytics_workspace_id}"
}
}
network_profile {
network_plugin = "kubenet"
load_balancer_sku = "Standard"
load_balancer_profile {
outbound_ip_address_ids = [ "${azurerm_public_ip.lb-public-ip1.id}" ]
}
}
tags = {
Environment = "${var.environment}"
Name = "${var.cluster_name}"
owner = "${var.resource_owner}"
created-by = "${var.policy_created_by}"
}
depends_on = [azurerm_public_ip.lb-public-ip1]
}
С этой настройкой он создал кластер AKS и LoadBalancer, называемый kubernetes, и назначил тот stati c publi c IP, который я создал для LoadBalancer без какого-либо назначенного LB В разделе «Конфигурация внешнего интерфейса IP» я также вижу, что он также создал другой IP-адрес, и все правила LoadBalancer и HealthProbes назначены этому IP-адресу, который создается автоматически. Кроме того, также созданы два пула бэкэнда: kubernetes (2 ВМ) и aksOutboundBackendPool (2 ВМ)
в Azure do c, в котором говорится: «По умолчанию один опубликованный c IP будет автоматически созданный в той же группе ресурсов, что и кластер AKS, если указано NO publi c IP, publi c IP-префикс или количество IP-адресов. " но в моем случае я указал PublicIP!
Мне интересно Почему он сам создал другой IP? как я могу пропустить этот автоматически созданный c IP-адрес и использовать только тот IP-адрес, который я создал и присвоил профилю loadbalancer, и как AKS может назначить правила LoadBalancer и пробники состояния тому IP-адресу, который я назначил?
Зачем нужно иметь несколько publi c IP?
В конце я собираюсь использовать назначенный PublicIP для входного шлюза istio. Вот почему мне нужен только один указанный c publi c IP.
Кроме того, какой внутренний пул мне следует использовать?
Мне просто нужен кластер AKS с высокой доступностью для Prod Env на случай, если если кластер в одной зоне выходит из строя, он запускает кластер во второй зоне.
Буду признателен за любую помощь.