問題タブ [kubernetes-networking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - バージョン「compute.cnrm.cloud.google.com/v1beta1」の種類「ComputeAddress」に一致するものはありません
Google Kubernetes Engine ( v1.20.8-gke.900 ) 用の Google マネージド SSL 証明書を作成しようとしています。そのために、このドキュメントを参照しました。ここでは、 ComputeAddressリソースを作成するように指示されています。だから私は以下の設定ファイルを作成しました
今、実行して適用しているとき
エラーが発生します
エラー: 「compute-address.yaml」を認識できません: バージョン「compute.cnrm.cloud.google.com/v1beta1」の種類「ComputeAddress」に一致するものはありません
それで、誰が正しいべきか、または正しいべきかを言うことができますapiVersion
かkind
kubernetes - k8s クラスター内では常に Ingress Rule または Node Port Service Name を呼び出す必要がありますか?
私たちのシステムには多くの安らかなサービスがあります
- 一部はkubernetesクラスター内にあります
- その他はレガシーインフラストラクチャ上にあり、VM でホストされています
私たちの安らかなサービスの多くは、互いに同期呼び出しを行います (メッセージ キューを使用して非同期ではありません)。
これらのサービスを利用する多数の UI (ファット クライアントまたは Web アプリ) もあります。
このような単純な k8s マニフェスト ファイルを定義する場合があります。
- ポッド
- サービス
- イングレス
クラスター上の安らかなサービスが互いに通信するための最良の方法は何なのか、私にはよくわかりません。
- イングレス ルールによって構築された URL を使用する、クラスター外の発信者にとって適切なルートは 1 つだけのようです。
- クラスタ内の 2 つのオプション
これは例でそれをさらに説明するかもしれません
発信者 | レシーバー | 例の URL | |
---|---|---|---|
UI | クラスタ上 | http://clusterip/orders | UI はクラスター IP とイングレス ルールを使用してオーダー マネージャーに到達します。 |
クラスター外のサービス | クラスタ上 | http://clusterip/orders | UIと同じように |
クラスタ上 | クラスタ上 | http://clusterip/orders | 上記のアプローチのような進入ルールを使用できます |
クラスタ上 | クラスタ上 | http://orderManager-service:50588/ | サービス名とポートを直接使用できます |
上記でクラスター ipを数回書いていますが、実際には何かをトップに置くので、http://mycluster/orders のようなわかりやすい名前があります。
したがって、発信者と受信者の両方がクラスター上にある場合、どちらかです
- クラスター外のサービスやアプリでも使用されるイングレスルールを使用する
- イングレス ルールで使用されるノードポート サービス名を使用します。
- またはおそらく何か他のもの!
nodeport サービス名を使用する利点の 1 つは、ベース URL を変更する必要がないことです。
- イングレスルールは、追加の要素をルートに追加します (上記の場合、orders ) 。
- Restful サービスをレガシーから k8s クラスターに移動すると、複雑さが増します