Kubernetes 如何使用Terraform在K8S群集计算机上创建入口?
我是K8S和Terraform的新手。我在运行在裸机上的K8S集群上安装了ingress_nginxKubernetes 如何使用Terraform在K8S群集计算机上创建入口?,kubernetes,terraform,kubernetes-ingress,Kubernetes,Terraform,Kubernetes Ingress,我是K8S和Terraform的新手。我在运行在裸机上的K8S集群上安装了ingress_nginx [root@control02 ~]# kubectl get svc -n ingress-nginx NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE docker-hello-world-svc
[root@control02 ~]# kubectl get svc -n ingress-nginx
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
docker-hello-world-svc NodePort 10.xx.xx.121 <none> 8086:30333/TCP 13d
ingress-nginx-controller NodePort 10.xx.xx.124 <none> 80:31545/TCP,443:30198/TCP 13d
ingress-nginx-controller-admission ClusterIP 10.xx.xx.85 <none> 443/TCP 13d
我的要求是在K8S集群上封装我们基于PHP的应用程序
ingress创建入口。yaml:kubernetes.io/ingress.class
相同(或不同)吗
“resource kubernetes_ingress”
。这可能吗
请澄清上述问题,并让我知道我的理解是否错误需要使用
ingress.class
让nginx ingress控制器了解他需要处理此资源
要使用terraform创建入口,可以使用以下方法
resource "kubernetes_ingress" "ingress" {
metadata {
name = "ingress-name"
namespace = "ingress-namespace"
labels = {
app = "some-label-app"
}
annotations = {
"kubernetes.io/ingress.class" : "nginx"
}
}
spec {
rule {
host = "foo.com"
http {
path {
backend {
service_name = "svc"
service_port = "http"
}
}
}
}
}
}
需要使用
ingres.class
让nginx入口控制器了解他需要处理此资源
要使用terraform创建入口,可以使用以下方法
resource "kubernetes_ingress" "ingress" {
metadata {
name = "ingress-name"
namespace = "ingress-namespace"
labels = {
app = "some-label-app"
}
annotations = {
"kubernetes.io/ingress.class" : "nginx"
}
}
spec {
rule {
host = "foo.com"
http {
path {
backend {
service_name = "svc"
service_port = "http"
}
}
}
}
}
}
我能够使用以下代码在现有K8S集群(裸机)上创建服务 K8S集群是在
192.168.xxx.xxx
上安装的,我在其上创建了一个服务示例
。我们需要提到'kubernetes'
块中的'host'
参数
provider "kubernetes" {
**host = "https://192.168.xxx.xxx:6443"**
cluster_ca_certificate = "${base64decode(var.cluster_ca_certificate)}"
client_certificate = "${base64decode(var.client_certificate)}"
client_key = "${base64decode(var.client_key)}"
}
resource "kubernetes_service" "example" {
metadata {
name = "example"
}
spec {
port {
port = 8585
target_port = 80
}
type = "ClusterIP"
}
}
我能够使用以下代码在现有K8S集群(裸机)上创建服务 K8S集群是在
192.168.xxx.xxx
上安装的,我在其上创建了一个服务示例
。我们需要提到'kubernetes'
块中的'host'
参数
provider "kubernetes" {
**host = "https://192.168.xxx.xxx:6443"**
cluster_ca_certificate = "${base64decode(var.cluster_ca_certificate)}"
client_certificate = "${base64decode(var.client_certificate)}"
client_key = "${base64decode(var.client_key)}"
}
resource "kubernetes_service" "example" {
metadata {
name = "example"
}
spec {
port {
port = 8585
target_port = 80
}
type = "ClusterIP"
}
}
谢谢你的回答。请回答我的问题#2请不要犹豫,澄清第一个问题,我可能没有理解你的回答。请回答我的问题#2请不要犹豫,澄清第一个问题,我可能不明白