[解決済み] Kubernetes Ingressのv1beta1からv1への移行時に「io.k8s.api.networking.v1.IngressBackendのunknown field "serviceName"」というエラーになる。
2022-10-30 06:50:24
質問内容
私は以下のYAMLを自分のIngressに適用し、動作しました(現在も動作しています)。
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: test-ingress
namespace: test-layer
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: mylocalhost.com
http:
paths:
- path: /
backend:
serviceName: test-app
servicePort: 5000
しかし、非推奨であることを示すメッセージが表示されます。
networking.k8s.io/v1
. 私はそれを行うとき(下記参照)、それはエラーをスローします。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: test-ingress
namespace: test-layer
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- host: mylocalhost.com
http:
paths:
- path: /
backend:
serviceName: test-app
servicePort: 5000
エラー
error: error validating "test-ingress.yaml":
error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend):
unknown field "serviceName" in io.k8s.api.networking.v1.IngressBackend,
ValidationError(Ingress.spec.rules[0].http.paths[0].backend):
unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend];
if you choose to ignore these errors, turn validation off with --validate=false
APIバージョンを変更した他は、特に変更はしていません。
kubectl version
が返されます。
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:30:33Z", GoVersion:"go1.15", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:23:04Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
どのように解決するのですか?
私は、この PR は、あなたが質問している変更を含んでいます。
`Ingress` and `IngressClass` resources have graduated to `networking.k8s.io/v1`. Ingress and IngressClass types in the `extensions/v1beta1` and `networking.k8s.io/v1beta1` API versions are deprecated and will no longer be served in 1.22+. Persisted objects can be accessed via the `networking.k8s.io/v1` API. Notable changes in v1 Ingress objects (v1beta1 field names are unchanged):
* `spec.backend` -> `spec.defaultBackend`
* `serviceName` -> `service.name`
* `servicePort` -> `service.port.name` (for string values)
* `servicePort` -> `service.port.number` (for numeric values)
* `pathType` no longer has a default value in v1; "Exact", "Prefix", or "ImplementationSpecific" must be specified
Other Ingress API updates:
* backends can now be resource or service backends
* `path` is no longer required to be a valid regular expression
の中を見ると 1.19 Ingress ドキュメント を見ると、新しい構文があるように見えます。
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
私は残念ながら自分でテストするための1.19クラスタを持っていませんが、これはあなたが遭遇しているものだと思います。
関連
-
[解決済み] CronJobによって作成された完了したKubernetesジョブを自動的に削除する方法とは?
-
[解決済み] Kubernetesのポッドを年齢でソートする
-
[解決済み] kubernetesポッド内のすべてのコンテナをきれいにリストアップする方法とは?
-
[解決済み] Kubernetesからすべてのリソースを一度に削除するには?
-
[解決済み] Pod内のコンテナからPod自身のIPアドレスを知るには?
-
[解決済み] バージョン "extensions/v1beta1" の種類 "Deployment" に一致するものはありません。
-
[解決済み] パーシステントボリューム(PV)とパーシステントボリュームクレーム(PVC)は簡単に言うと何が違うのか?
-
[解決済み] ネームスペースの全リソースをリストアップする
-
[解決済み] Helmチャートで環境変数を取得する方法
-
[解決済み] Kubernetesです。PersistentVolumeClaim (pvc)を削除できない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CronJobによって作成された完了したKubernetesジョブを自動的に削除する方法とは?
-
[解決済み] Kubernetesのポッドを年齢でソートする
-
[解決済み] kubernetesポッド内のすべてのコンテナをきれいにリストアップする方法とは?
-
[解決済み] k8sのConfigMapやSecretを既存のものを削除せずに更新する方法
-
[解決済み] Kubernetesからすべてのリソースを一度に削除するには?
-
[解決済み] helm list : 名前空間 "kube-system" のconfigmapをリストアップできない。
-
[解決済み] パーシステントボリューム(PV)とパーシステントボリュームクレーム(PVC)は簡単に言うと何が違うのか?
-
[解決済み] ネームスペースの全リソースをリストアップする
-
[解決済み] Helmチャートで環境変数を取得する方法
-
[解決済み] Kubernetesです。PersistentVolumeClaim (pvc)を削除できない。