kubernetes - 无法在我的 GKE 集群中将服务应用为“类型:ClusterIP”
问题描述
我想将我的服务部署为 ClusterIP,但无法将其应用于给定的错误消息:
[xetra11@x11-work coopr-infrastructure]$ kubectl apply -f teamcity-deployment.yaml
deployment.apps/teamcity unchanged
ingress.extensions/teamcity unchanged
The Service "teamcity" is invalid: spec.ports[0].nodePort: Forbidden: may not be used when `type` is 'ClusterIP'
这是我的 .yaml 文件:
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: teamcity
labels:
app: teamcity
spec:
replicas: 1
selector:
matchLabels:
app: teamcity
template:
metadata:
labels:
app: teamcity
spec:
containers:
- name: teamcity-server
image: jetbrains/teamcity-server:latest
ports:
- containerPort: 8111
---
apiVersion: v1
kind: Service
metadata:
name: teamcity
labels:
app: teamcity
spec:
type: ClusterIP
ports:
- port: 8111
targetPort: 8111
protocol: TCP
selector:
app: teamcity
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: teamcity
annotations:
kubernetes.io/ingress.class: nginx
spec:
backend:
serviceName: teamcity
servicePort: 8111
解决方案
按文件名将配置应用于资源:
kubectl apply -f [.yaml file] --force
如果该资源尚不存在,则将创建该资源。要使用“应用”,请始终使用“应用”或“创建 --save-config”来创建资源。
2)如果第一个失败,你可以强制替换,删除然后重新创建资源:
kubectl replace -f grav-deployment.yml
此命令仅在grace-period=0 时使用。如果为 true,则立即从 API 中删除资源并绕过优雅删除。请注意,立即删除某些资源可能会导致不一致或数据丢失,需要确认。
推荐阅读
- excel - 如何让 msgbox 在最后显示工作表的数量?
- oauth-2.0 - 在不重新提示用户的情况下将 gmail.modify 范围降级为 gmail.readonly
- html - 无法将信息插入第三列
- python - 如果文件名和目录匹配python
- java - 使用 Twitter4j 发布 Twitter 线程
- angular - mat table 在切换检查时将过滤器应用于一列并在未选中时重置
- c# - WCF 写入 IIS 日志而不阻止请求
- openlayers - 如何在 Openlayers 中突出显示乒乓球场所?
- php - 基于 2 个不同的变量在表中搜索类似的匹配项
- atom-editor - 升级到 MacOs Mojave 后 Xdebug 和 Atom 不起作用