如何使用Terraform和ClusterIP定义Kubernetes服务
我可以用NodePort或LoadBalancer定义一个服务,但当我尝试使用ClusterIP Terraform时,我看到了这个消息如何使用Terraform和ClusterIP定义Kubernetes服务,kubernetes,terraform,Kubernetes,Terraform,我可以用NodePort或LoadBalancer定义一个服务,但当我尝试使用ClusterIP Terraform时,我看到了这个消息 Failed to update service: Service "hello-service" is invalid: spec.ports[0].nodePort: Forbidden: may not be used when `type` is 'ClusterIP' 这是一条奇怪的消息,因为我没有提供节点端口。大概它默认了ClusterIP不想要
Failed to update service: Service "hello-service" is invalid: spec.ports[0].nodePort: Forbidden: may not be used when `type` is 'ClusterIP'
这是一条奇怪的消息,因为我没有提供节点端口。大概它默认了ClusterIP不想要的东西。这是我的服务定义:
resource "kubernetes_service" "hello-service" {
metadata {
name = "hello-service"
labels = {
app = "hello"
}
}
spec {
type = "ClusterIP"
selector = {
app = "hello"
}
port {
port = 80
target_port = 8080
protocol = "TCP"
}
}
}
我已经看过文档了,没有看到ClusterIP有什么不同之处。我错过了什么
terraform --version
Terraform v0.12.4
+ provider.google v3.3.0
+ provider.kubernetes v1.10.0
Running on GCP
谢谢
$kubectl apply-f your-service-conf-file.yaml--force
$kubectl replace
命令
注意:需要将clusterIP字段指定为相同的IP
作为此服务的已分配群集IP - port: {{ .Values.service.externalPort }} {{- if (eq .Values.service.type "ClusterIP") }}
nodePort: null {{- end }}
targetPort: {{ .Values.service.internalPort }}
protocol: TCP
name: {{ .Values.service.name }}
这仅在第一次安装后有效。所以没有
“声明性”解决方案,您需要手动更改服务$kubectl delete svc my nginx
然后,您可以创建poper类型的服务您可以在此处找到更多信息:。您是从头开始创建服务还是更新现有服务?这听起来像是提供商实现中的错误?@maforcreatingnewservicekubectl工作正常。赫尔姆可能也是。问题是关于地形的。您是否尝试删除以前创建的分配给特定pod的服务?是的。创建一个新的服务w ClusterIP对我来说失败了