[ 言語選択: English ]

AWSやGCPなどのプラットフォームが提供するKubernetesの説明では、外部との通信にグローバルIPアドレスが割り当てられるロードバランサー(LB)が利用されています。

このk8sクラスターでは、MetalLBを利用して、192.168.100.160-199/24の範囲のIPアドレスを割り当てることができます。

192.168.100.0/24のアドレスを割り当てたLBは、演習室などのゼミ室10以外からはアクセスすることができません。

2021年からは、LBよりもIngressの利用 svc/<username>-svc (e.g. svc/s12xxxxx-svc) を推奨しています。

1. 基本的な使い方

公式サイト、kubernetes.io公式::Service#LoadBalancer、では、"app: MyApp"というlabelが設定されたPodの9376ポートに通信を転送するService定義が紹介されています。

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376
  type: LoadBalancer
  • name:は分かりやすい任意の名前にします。

  • selector:にはPodのmetadata.labelsに設定されている値を指定します。

  • port:には外部から接続させたいポート番号を指定します。

  • targetPort:にはPodが利用しているポート番号を指定します。

自分のPodにネットワーク経由でのアクセスを許可したい場合には、この定義をコピーして上記4つのパラメータを適宜変更してください。

011.永続記憶領域で準備したnginx-nfsのService定義にtype: LoadBalancerを追加すると、192.168.100.x/24のIPアドレスでアクセスすることができるようになります。