Bicep Kubernetes 扩展(预览)
Kubernetes 扩展允许你直接使用 Bicep 创建 Kubernetes 资源。 Bicep 可以部署能够使用 Kubernetes 命令行客户端 (kubectl) 和 Kubernetes 清单文件部署的任何内容。
注意
专用群集当前不支持 Kubernetes 扩展:
resource AKS 'Microsoft.ContainerService/managedClusters@2024-02-01' = {
...
properties: {
apiServerAccessProfile: {
enablePrivateCluster: true
}
}
}
启用预览功能
可以通过配置 bicepconfig.json 来启用此预览功能:
{
"experimentalFeaturesEnabled": {
"extensibility": true
}
}
导入 Kubernetes 扩展
若要安全地传递 Kubernetes 部署的机密,必须使用 Bicep 模块调用 Kubernetes 代码,并将参数作为机密传递。 若要导入 Kubernetes 扩展,请使用导入语句。 导入扩展后,可以像往常一样重构 Bicep 模块文件,例如使用变量、参数和输出。 根据协定,YML 中的 Kubernetes 清单不包含任何可编程性支持。
以下示例导入了 Kubernetes 扩展:
@secure()
param kubeConfig string
import 'kubernetes@1.0.0' with {
namespace: 'default'
kubeConfig: kubeConfig
} as k8s
- 命名空间:指定扩展的命名空间。
- KubeConfig:指定 Kubernetes 群集管理员凭据的 base64 编码值。
以下示例演示了如何从父 Bicep 文件传递 kubeConfig
值:
resource aks 'Microsoft.ContainerService/managedClusters@2024-02-01' existing = {
name: 'demoAKSCluster'
}
module kubernetes './kubernetes.bicep' = {
name: 'buildbicep-deploy'
params: {
kubeConfig: aks.listClusterAdminCredential().kubeconfigs[0].value
}
}
AKS 群集可以是新资源,也可以是现有资源。 Visual Studio Code 中的 Import Kubernetes manifest
命令可以自动添加导入代码片段。 有关详细信息,请参阅 导入 Kubernetes 清单命令。
Visual Studio Code 导入
你可以从 Visual Studio Code 导入 Kubernetes 清单文件来创建 Bicep 模块文件。 有关详细信息,请参阅 Visual Studio Code。