- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 terraform
在 azure 中创建 AKS 集群。我的要求如下:
创建站点到站点 VPN 连接,其中网关位于 172.30.0.0/16
范围的子网中 - 此操作已完成
使用 Azure CNI 安装 Azure AKS 集群,并且 Pod 应该位于 VPN CIDR (172.30.0.0/16
) 范围内。
这是我的地形代码。我读到,如果您使用 azure
作为 network_policy
和 network_plugin
,则无法设置 pod_cidr
- source
那么我该如何执行此操作,以便我的 POD 可以通过站点到站点 VPN 访问本地网络?
resource "azurerm_kubernetes_cluster" "k8s_cluster" {
lifecycle {
ignore_changes = [
default_node_pool[0].node_count
]
prevent_destroy = false
}
name = var.cluster_name
location = var.location
resource_group_name = var.rg_name
dns_prefix = var.dns_prefix
kubernetes_version = var.kubernetes_version
# node_resource_group = var.resource_group_name
default_node_pool {
name = var.default_node_pool.name
node_count = var.default_node_pool.node_count
max_count = var.default_node_pool.max_count
min_count = var.default_node_pool.min_count
vm_size = var.default_node_pool.vm_size
os_disk_size_gb = var.default_node_pool.os_disk_size_gb
# vnet_subnet_id = var.vnet_subnet_id
max_pods = var.default_node_pool.max_pods
type = var.default_node_pool.agent_pool_type
enable_node_public_ip = var.default_node_pool.enable_node_public_ip
enable_auto_scaling = var.default_node_pool.enable_auto_scaling
tags = merge(var.common_tags)
}
identity {
type = var.identity
}
network_profile {
network_plugin = var.network_plugin #azure
network_policy = var.network_policy #"azure"
load_balancer_sku = var.load_balancer_sku #"standard"
# pod_cidr = var.pod_cidr | When network_plugin is set to azure - the vnet_subnet_id field in the default_node_pool block must be set and pod_cidr must not be set.
}
tags = merge(var.common_tags)
}
# AKS cluster related variables
cluster_name = "test-cluster"
dns_prefix = "testjana"
kubernetes_version = "1.22.15"
default_node_pool = {
name = "masternp" # for system pods
node_count = 1
vm_size = "standard_e4bds_v5" # 4 vcpu and 32 Gb of memory
enable_auto_scaling = false
enable_node_public_ip = false
min_count = null
max_count = null
max_pods = 100
os_disk_size_gb = 80
agent_pool_type = "VirtualMachineScaleSets"
}
admin_username = "jananathadmin"
ssh_public_key = "public_key"
identity = "SystemAssigned"
network_plugin = "azure"
network_policy = "azure"
load_balancer_sku = "standard"
最佳答案
默认情况下,AKS 中的所有 POD 都会相互通信,当我们想要限制流量时,可以使用网络策略来允许或拒绝 Pod 之间的流量。
这是教程 link
使用下面的代码片段通过 terraform 复制了相同的内容,将集群与 azure CNI 和 vnet 网关连接起来,该网关通过站点到站点 VPN 将我们的本地环境链接到 azure。
第一步:主tf文件如下
resource "azurerm_resource_group" "example" {
name = "*****-****"
location = "East US"
}
resource "azurerm_role_assignment" "role_acrpull" {
scope = azurerm_container_registry.acr.id
role_definition_name = "AcrPull"
principal_id = azurerm_kubernetes_cluster.demo.kubelet_identity.0.object_id
}
resource "azurerm_container_registry" "acr" {
name = "acrswarna"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku = "Standard"
admin_enabled = false
}
resource "azurerm_virtual_network" "puvnet" {
name = "Publics_VNET"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
address_space = ["10.19.0.0/16"]
}
resource "azurerm_subnet" "example" {
name = "GatewaySubnet"
resource_group_name = azurerm_resource_group.example.name
virtual_network_name = azurerm_virtual_network.puvnet.name
address_prefixes = ["10.19.3.0/24"]
}
resource "azurerm_subnet" "osubnet" {
name = "Outer_Subnet"
resource_group_name = azurerm_resource_group.example.name
address_prefixes = ["10.19.1.0/24"]
virtual_network_name = azurerm_virtual_network.puvnet.name
}
resource "azurerm_kubernetes_cluster" "demo" {
name = "demo-aksnew"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
dns_prefix = "demo-aks"
default_node_pool {
name = "default"
node_count = 2
vm_size = "standard_e4bds_v5"
type = "VirtualMachineScaleSets"
enable_auto_scaling = false
min_count = null
max_count = null
max_pods = 100
//vnet_subnet_id = azurerm_subnet.osubnet.id
}
identity {
type = "SystemAssigned"
}
network_profile {
network_plugin = "azure"
load_balancer_sku = "standard"
network_policy = "azure"
}
tags = {
Environment = "Development"
}
}
resource "azurerm_public_ip" "example" {
name = "pips-firewall"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
allocation_method = "Static"
sku = "Standard"
}
resource "azurerm_virtual_network_gateway" "example" {
name = "test"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
type = "Vpn"
vpn_type = "RouteBased"
active_active = false
enable_bgp = false
sku = "VpnGw1"
ip_configuration {
name = "vnetGatewayConfig"
public_ip_address_id = azurerm_public_ip.example.id
private_ip_address_allocation = "Dynamic"
subnet_id = azurerm_subnet.example.id
}
vpn_client_configuration {
address_space = ["172.30.0.0/16"]
root_certificate {
name = "******-****-ID-Root-CA"
public_cert_data = <<EOF
**Use certificate here**
EOF
}
revoked_certificate {
name = "*****-Global-Root-CA"
thumbprint = "****************"
}
}
}
注意:在上面的代码上自行更新根证书配置。
提供tf文件如下
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=3.0.0"
}
}
}
provider "azurerm" {
features {}
skip_provider_registration = true
}
运行时
terraform plan
terraform apply -auto-approve
Vnet 和子网配置
虚拟网络网关配置如下。
在集群上部署示例 Pod
关于azure - Terraform - 如何在 AKS 集群上安装 AZURE CNI 并设置 POD IP 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74714410/
我使用“创建 Kubernetes 集群”功能在 Azure 门户中创建了我的 AKS 集群,并允许它创建新的服务主体。 我开始怀疑这个主体使用的凭据是否过期。为了避免 K8s 在凭证到期时与 Azu
文档描述了如何将 ACR 附加到现有的 AKS 群集,https://learn.microsoft.com/en-us/azure/aks/cluster-container-registry-in
我创建了一个 AKS 集群,并启用了 AKS 管理的 Azure Active Directory 和基于角色的访问控制 (RBAC)。如果我尝试使用 Admin Azure AD 组中包含的其中一个
因此,我可以在 AKS 的见解选项卡中清楚地看到每个容器的统计信息。这些必须来自某个地方,但我只能在查询日志/指标时找到每个节点的统计信息。我如何查询这个(为了构建一个工作簿)。 最佳答案 该数据位于
我遇到的情况是,我的 AKS 集群已经就位,有两个 AKS 集群,并且它们仅在其安全区域内部可用。我不想通过互联网从另一个集群访问集群内的内部资源。 我正在探索专用链接服务和端点,有什么建议吗? 两个
好吧,在过去的两天里,我一直在与这个文档作斗争: https://learn.microsoft.com/en-au/azure/aks/static-ip和 https://learn.micros
我正在尝试找出使用 AKS 和 VSTS 为 Asp.Net Core Web 应用程序设置 CI/CD 的步骤。 https://learn.microsoft.com/en-us/vsts/bui
我遇到的情况是,我的 AKS 集群已经就位,有两个 AKS 集群,并且它们仅在其安全区域内部可用。我不想通过互联网从另一个集群访问集群内的内部资源。 我正在探索专用链接服务和端点,有什么建议吗? 两个
只是一个问题,在微软页面上 https://learn.microsoft.com/en-us/azure/aks/configure-kubenet#bring-your-own-subnet-an
kubectl 任务无法将 list 文件部署到 AKS。管道失败并出现以下错误 ##[错误]未找到与/home/vsts/work/1/s/manifests 匹配的配置文件。 管道在运行两个阶段(
我一直在尝试设置 Kubernetes 1.13 AKS 部署以使用 HPA,但我一直遇到问题: NAME REFERENCE
我们公司封锁了 ssh 端口。如何使用 cloud shell ssh 进入 AKS 集群,以便我们可以从那里 curl 到外部 URL 来测试连接?谢了。 最佳答案 这实际上没有多大意义,但您只需要
我正在通过 azure 安装 istio az aks mesh enable --resource-group 'myrg' --name 'myk8s' 然后启用外部 istio 入口网关 az
查看地形 documentation我无法确定如何将 UAMI 分配为 kubelet_identity对于aks集群。 identity { ... }按照描述设置 controlPlane UAM
我正在通过 azure 安装 istio az aks mesh enable --resource-group 'myrg' --name 'myk8s' 然后启用外部 istio 入口网关 az
查看地形 documentation我无法确定如何将 UAMI 分配为 kubelet_identity对于aks集群。 identity { ... }按照描述设置 controlPlane UAM
我们可以从 Log Analytics Workspace 访问 pod 相关日志,但没有应用程序日志(类似于我们在 kubectl get events 中看到的)。 我指的是 Azure 文档,但
az aks create -n MyServices -g MyKubernetes --generate-ssh-keys 不工作。错误消息:az aks create -n Adestis-Se
我想知道如何通过 ssh 连接到 GKE 和 AKS 中的节点,以及如何在 Kubernetes 集群中安装 ELK 堆栈。 任何一步一步的链接都会对我有帮助。 无法使用此命令连接:gcloud co
使用azure aks get-credentials --admin可以获取kubernetes管理配置文件,azure aks get-credentials只能获取azure上的用户配置文件。
我是一名优秀的程序员,十分优秀!