これは未公開の文書です SUSE® Virtual Clusters v1.2.0 (Dev).

ハウツー:仮想クラスターの外部にワークロードを公開する

このガイドでは、k3k管理の仮想クラスターで実行されているワークロードを外部ネットワークに公開する方法を説明します。動作は仮想クラスターの運用モードによって異なります。

仮想モード

_仮想モード_では、ワークロードの直接的な外部公開は*利用できません*。このモードは強力な隔離を目的としており、仮想クラスターのネットワークを直接公開しません。

共有モード

_共有モード_では、要件に応じて、標準のKubernetesサービスタイプまたはイングレスコントローラーを使用して、ワークロードを外部ネットワークに公開できます。

_`Services`_は、ポッドに関してここで説明されているのと同じ原則に従って、常に仮想クラスターからホストクラスターに同期されます。

オプション1:`NodePort`または`LoadBalancer`を使用してください

ホストクラスターの外部に、ウェブアプリケーションなどのサービスを公開するには:

  • NodePort:各ノードのIP上の静的ポートでサービスを公開します。サービスにアクセスするには`http://<NodeIP>:<NodePort>`を使用してください。

  • LoadBalancer:外部ロードバランサーをプロビジョニングし(環境がサポートしている場合)、ロードバランサーのIPを介してサービスを公開します。

`LoadBalancer`のIPは現在、仮想クラスターサービスに反映されていません。
https://github.com/rancher/k3k/issues/365[k3k issue #365]

オプション2:内部通信には`ClusterIP`を使用してください

ワークロードがホストクラスター内の他のサービスやポッド_内_のみにアクセス可能であるべき場合:

  • `ClusterIP`サービスタイプを使用します。これは、ホストクラスター内でのみ到達可能な内部IP上にサービスを公開します。

オプション3:HTTP/HTTPSルーティングにIngressを使用します。

ホスト名やパスに基づく高度なルーティングを行うには、仮想クラスターに*Ingressコントローラー*をデプロイし、`NodePort`または`LoadBalancer`を介して公開します。

これにより、次の作業が可能になります。

  • 仮想クラスター内でIngressリソースを定義します。

  • 外部トラフィックを仮想クラスター内のサービスにルーティングします。

オプション4:ホストIngressを使用します。

ホストIngressコントローラーを使用するには、`sync.ingresses`を有効にします。Ingressはホストクラスターと同期されるため、仮想クラスターのユーザーはIngressコントローラーをデプロイする必要はありません。

apiVersion: k3k.io/v1beta1
kind: Cluster
metadata:
  name: k3kcluster-shared-mode
spec:
  mode: shared
  ...
  sync:
    ingresses:
      enabled: true

この同期が有効になっていると、証明書もホストクラスターによって発行されることがあります。例えば、`Cert-Manager`を使用している場合、証明書が発行されることがあります。