kubernetes - 将 apiVersion:networking.k8s.io/v1beta1 入口清单转换为 apiVersion:networking.k8s.io/v1
问题描述
今年早些时候,我安装了一个带有 nginx 入口的运行 kubernetes 集群。虽然它有一些小问题,但它工作得很好。对于入口,我使用了标签
api版本:networking.k8s.io/v1beta1
但是,我最近安装了最新版本的(kubernetes 1.22),它只允许
api版本:networking.k8s.io/v1
我遇到的问题是使用新格式的旧 yaml 配置。
我的 yaml 文件如下所示:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: dev-ingress
annotations:
nginx.ingress.kubernetes.io/proxy-body-size: "0"
nginx.ingress.kubernetes.io/websocket-services : "chatserver"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-methods: "PUT, GET, POST, OPTIONS"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- http:
paths:
- path: /api/auth/
pathType: Prefix
backend:
serviceName: um-service
servicePort: 5001
- path: /api/system/*
pathType: Prefix
backend:
serviceName: system-service
servicePort: 5002
- path: /api/news/*
backend:
serviceName: news-service
servicePort: 5003
- path: /api/tasks/*
# pathType: Prefix
backend:
serviceName: tasks-service
servicePort: 5004
- path: /api/chats/
pathType: Prefix
backend:
serviceName: chatserver
servicePort: 5500
- path: /
backend:
serviceName: web-service
servicePort: 5000
我的新清单如下所示:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: dev-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /api/auth/
pathType: Prefix
backend:
service:
name: um-service
port:
number: 5001
- path: /api/system/*
pathType: Prefix
backend:
service:
name: system-service
port:
number: 5002
- path: /api/chats/
pathType: Prefix
backend:
service:
name: chatserver
port:
number: 5050
- path: /
pathType: Prefix
backend:
service:
name: web-service
port:
number: 5000
ingressClassName: nginx
如何将其转换为使用新的 apiVersion:networking.k8s.io/v1 标签?
解决方案
幸运的是,就 YAML 而言,API 版本之间没有太大区别。networking.k8s.io/v1
这是Kubernetes Docs中的一个示例。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: test
port:
number: 80
您的主要变化与backend
块的完成方式有关。例如:
backend:
serviceName: tasks-service
servicePort: 5004
需要变成:
backend:
service:
name: "tasks-service"
port:
number: 5004
推荐阅读
- google-apps-script - 从父级导航嵌入式 Google Apps 脚本 iFrame
- python - 如何将没有公共 ID 的两个数据框合并在一起?
- sql - 无法从 xamarin 中的联合查询中获取列表值
- c# - 从列表中删除对象字符串属性不在另一个列表中的对象
的财产 - amazon-web-services - 如何在 aws lambda 中实现电路模式
- android - 如何在运行时正确更改视频播放器源?
- python - 赋值错误之前引用的局部变量“表单”
- google-apps-script - 当行有数据时有边框,但如果为空则没有边框
- html - 为什么与其他浏览器相比,谷歌浏览器在查看此页面时表现异常?
- sql - Round time(7) 列值不接近 15 分钟