機械翻訳について

8 KubernetesサービスのexternalIPsへのアクセスの設定

この章では、KubernetesサービスでのexternalIPsへのアクセス権の設定について説明します。 externalIPsの詳細については、アップストリーム「Kubernetesドキュメント」を参照してください。

Kubernetesをデプロイすると、KubernetesサービスのexternalIPsへのアクセスを制御するクラスタにサービスがデプロイされます。 このサービスはexternalip-validation-webhook-serviceという名前で、externalip-validation-systemネームスペースで実行されます。

Kubernetesのデプロイ後、次を使用してサービスが実行されていることを確認できます:

kubectl get services --namespace externalip-validation-system

出力は次のようになります:

NAME                                    TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE
externalip-validation-webhook-service   ClusterIP   10.100.79.236   <none>        443/TCP   15m

このKubernetesサービスでは、Kubernetesをデプロイする前にX.509証明書を設定する必要があります。 Vault、CA証明書で生成された証明書を使用することも、gen-certs-helper.shスクリプトを使用して証明書を生成することもできます。 これらの証明書の設定の詳細は、「インストール」を参照してください。

Kubernetesをデプロイする場合は、olcnectl module createコマンドでこれらの証明書のロケーションを指定する必要があります。 Kubernetesモジュールの作成および証明書のロケーションの設定の例を「Kubernetesモジュールの作成」に示します。

CIDRブロックへのアクセスの有効化

オプションで、モジュールの作成時にKubernetesサービスがアクセスできる外部IPアドレスを設定できます。 これを設定するには、olcnectl module createコマンドの--restrict-service-externalip-cidrsオプションを使用します。 この例では、許可されるIP範囲は、192.0.2.0/24および198.51.100.0/24 CIDRブロック内にあります。

olcnectl module create \
--environment-name myenvironment \
--module kubernetes \
--name mycluster \
...
--restrict-service-externalip-ca-cert /etc/olcne/certificates/restrict_external_ip/ca.cert \
--restrict-service-externalip-tls-cert /etc/olcne/certificates/restrict_external_ip/node.cert \
--restrict-service-externalip-tls-key /etc/olcne/certificates/restrict_external_ip/node.key \
--restrict-service-externalip-cidrs 192.0.2.0/24,198.51.100.0/24

CIDRブロックへのアクセスの変更

許可するように構成されたCIDRブロックを持つKubernetesモジュールがある場合、olcnectl module updateコマンドの--restrict-service-externalip-cidrsオプションを使用してこの構成を変更できます。 これにより、構成されるCIDRSを変更できます。 たとえば、既存のKubernetesモジュールの192.0.2.0/24にアクセスできるCIDRブロックを設定するには:

olcnectl module update \
--environment-name myenvironment \
--name mycluster \
--restrict-service-externalip-cidrs 192.0.2.0/24

CIDRブロックへのアクセスを削除する(つまり、externalIPsへのアクセスが許可されない)には、--restrict-service-externalip-cidrsオプションをnullに設定します。次に例を示します:

olcnectl module update \
--environment-name myenvironment \
--name mycluster \
--restrict-service-externalip-cidrs ""

externalIPsへのアクセスの無効化

KubernetesサービスによるexternalIPsへのアクセスを制限するには、Kubernetesモジュールの作成時に許可されるCIDRブロックを設定しないでください。 そのため、olcnectl module createコマンドの--restrict-service-externalip-cidrsオプションは使用しないでください。 externalip-validation-webhook-service Kubernetesサービスはデプロイされますが、externalIPsへのアクセスは許可されません。 たとえば:

olcnectl module create \
--environment-name myenvironment \
--module kubernetes \
--name mycluster \
...
--restrict-service-externalip-ca-cert /etc/olcne/certificates/restrict_external_ip/ca.cert \
--restrict-service-externalip-tls-cert /etc/olcne/certificates/restrict_external_ip/node.cert \
--restrict-service-externalip-tls-key /etc/olcne/certificates/restrict_external_ip/node.key

既存のKubernetesモジュールがあり、すべての構成済CIDRブロックへのアクセス権を削除する場合は、モジュールを更新し、「CIDRブロックへのアクセスの変更」に示すように--restrict-service-externalip-cidrsオプションをnullに設定します。

すべてのexternalIPsへのアクセスの有効化

すべてのKubernetesサービスがすべてのexternalIPsにアクセスできるようにする場合は、olcnectl module createコマンドの--restrict-service-externalip falseオプションを使用して、この機能を無効にできます。 この機能を無効にすると、すべてのKubernetesサービスがクラスタ内のすべてのexternalIPsにアクセスできることになります。

この機能を無効にすると、externalip-validation-webhook-service Kubernetesサービスはクラスタにデプロイされません。つまり、Kubernetesサービスに対して外部IPアドレスの検証が実行されず、すべてのCIDRブロックに対してアクセスが許可されます。 たとえば、Kubernetesモジュールを作成する場合は、--restrict-service-externalip falseオプションを含めます:

olcnectl module create \
--environment-name myenvironment \
--module kubernetes \
--name mycluster \
...
--restrict-service-externalip false 

olcnectl module updateコマンドの--restrict-service-externalip falseオプションを使用して、Kubernetesクラスタでこの機能を無効にできます。 この方法でKubernetesモジュールを変更すると、クラスタからexternalip-validation-webhook-service Kubernetesサービスが削除されるため、検証は実行されません。 たとえば:

olcnectl module update \
--environment-name myenvironment \
--name mycluster \
--restrict-service-externalip false 

逆に、olcnectl module updateコマンドの--restrict-service-externalip trueオプションを使用してKubernetesクラスタでこの機能を有効にすると、externalip-validation-webhook-service Kubernetesサービスがクラスタにデプロイされるため、検証が実行されます。 たとえば:

olcnectl module update \
--environment-name myenvironment \
--name mycluster \
--restrict-service-externalip true