gpt4 book ai didi

azure - 使用 terraform 为 AKS 集群创建虚拟网络

转载 作者:行者123 更新时间:2023-12-04 02:37:48 24 4
gpt4 key购买 nike

使用 azurerm_kubernetes_cluster 创建新的 aks 集群时,会自动创建名为 - MC_%RESOURCE_GROUP_NAME%_%CLUSTER_NAME%_%LOCATION% 的新资源组,其中包含所有网络资源对于集群。

enter image description here

我的目标是使用一个 Vnet 来容纳这些资源(AKS 网络资源)以及其他资源,例如 VM 和 Azure 缓存。

据我所知,有 2 个选项可以解决此问题 -

  1. 使用 terraform 输出并在自动创建的 Vnet 内创建新资源,这并不理想,因为我对创建的网络影响为零。
  2. 创建我自己的 Vnet 并将 AKS 群集附加到此 Vnet。

目前,我正在尝试接近 2,但到目前为止还没有成功。

如有任何想法、建议和示例,我们将不胜感激。

最佳答案

事实并非如此。正如您所看到的,azure 将创建一个全新的 RG,其中包含一堆 AKS 相关的内容。但是集群本身将进入您希望它位于的任何 RG。然后使用 azure 网络插件,您的 Pod 可以进入您指定的 VNEt,并可以访问您的其他资源。互联网络。

这是我在根据我的需求进行开发时如何构建它的示例,对您来说应该是一个很好的入门。

resource "azurerm_resource_group" "rg" {
name = var.rgname
location = var.location
tags = var.default-tags
}

resource "azurerm_virtual_network" "vnet" {
name = "vnet"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
address_space = [var.ipspace]
tags = var.default-tags
}

resource "azurerm_subnet" "vmsubnet" {
name = "vmsubnet"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefix = var.vmsubnet
}

resource "azurerm_subnet" "akspodssubnet" {
name = "akspodssubnet"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefix = var.akspodssubnet
}


resource "azurerm_kubernetes_cluster" "k8s" {
name = "K8Scluster"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name # th RG the single cluster entity goes is
dns_prefix = "k8s"
node_resource_group = "K8S${azurerm_resource_group.rg.name}" # all the k8s' entities must be in fdifferent RG than where the cluster object itself is
api_server_authorized_ip_ranges = ["REDACTED"]
#enable_pod_security_policy = true
kubernetes_version = "1.15.7"

default_node_pool {
name = "default"
type = "AvailabilitySet"
vm_size = var.vmsize # Standard_DC2s_v2 Standard_B1ms
enable_node_public_ip = false
enable_auto_scaling = false
os_disk_size_gb = 30
node_count = 1
vnet_subnet_id = azurerm_subnet.akspodssubnet.id
}

addon_profile {
kube_dashboard { enabled = true }
}

network_profile {
network_plugin = "azure"
network_policy = "azure"
load_balancer_sku = "standard"
service_cidr = var.aksservicecidr
docker_bridge_cidr = var.dockercidrip
dns_service_ip = var.aksdns
}

linux_profile {
admin_username = var.sudouser
ssh_key { key_data = var.sshpubkey }
}

service_principal {
client_id = var.client_id
client_secret = var.client_secret
}

tags = var.default-tags
}

output "client_certificate" {
value = azurerm_kubernetes_cluster.k8s.kube_config.0.client_certificate
}

output "kube_config" {
value = azurerm_kubernetes_cluster.k8s.kube_config_raw
}

关于azure - 使用 terraform 为 AKS 集群创建虚拟网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60834125/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com