このドキュメントでは、Google Distributed Cloud のクラスタから静的 IP アドレスを削除する方法について説明します。
ノードに静的 IP アドレスを使用するクラスタを作成する場合は、IP ブロック ファイルで IP アドレスのセットを指定します。後で必要以上の IP アドレスを指定したことが判明した場合は、クラスタから一部の IP アドレスを削除できます。
ユーザー クラスタから IP アドレスを削除する
削除後に十分な IP アドレスがある状態にしてください。アップグレード中に、クラスタノードごとに 1 つの IP アドレスと、一時ノードに使用される追加の IP アドレスが必要です。たとえば、3 つのクラスタノードがある場合は、削除後に残りの IP アドレスが 4 つ必要です。
手順は次のとおりです。
管理クラスタには、関連するユーザー クラスタごとに OnPremUserCluster カスタム リソースがあります。管理クラスタで、ユーザー クラスタの OnPremUserCluster カスタム リソースを編集します。
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG edit onpremusercluster USER_CLUSTER_NAME \ --namespace USER_CLUSTER_NAME-gke-onprem-mgmt
次のように置き換えます。
- ADMIN_CLUSTER_KUBECONFIG: 管理クラスタの kubeconfig ファイルのパス
- USER_CLUSTER_NAME: ユーザー クラスタの名前
選択した IP アドレスを
ipBlocks
セクションから削除します。network: ... ipMode: ipBlocks: - gateway: 198.51.100.254 ips: - hostname: user-host1 ip: 198.51.100.1 - hostname: user-host2 ip: 198.51.100.2 - hostname: user-host3 ip: 198.51.100.3 - hostname: user-host4 ip: 198.51.100.4 - hostname: user-host5 ip: 198.51.100.5 netmask: 255.255.255.0 type: static
編集セッションを閉じます。
ユーザー クラスタで、デフォルトの名前空間内のすべての Machine オブジェクトを表示します。
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get machines --output yaml
削除した IP アドレスの一つを使用するすべての Machine オブジェクトを削除します。たとえば、アドレス 198.51.100.1 を削除し、
my-node-pool-1234
Machine オブジェクトがそのアドレスを使用していることが判明したとします。Name: my-node-pool-1234 Namespace: default Labels: kubernetes.googleapis.com/cluster-name=my-cluster kubernetes.googleapis.com/cluster-namespace=default ... Annotations: ... vm-ip-address: 198.51.100.1
次に、
my-node-pool-1234
マシン オブジェクトを削除する必要があります。kubectl --kubeconfig USER_CLUSTER_KUBECONFIG delete machine my-node-pool-1234
数分後、クラスタノードのアドレスを表示します。
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes --output wide
削除された IP アドレスが出力に表示されないことを確認します。次に例を示します。
myhost2 Ready ... 198.51.100.2 myhost3 Ready ... 198.51.100.3 myhost4 Ready ... 198.51.100.4
管理クラスタから IP アドレスを削除する
削除後に十分な IP アドレスがある状態にしてください。管理クラスタ コントロール プレーン ノードには 1 つの IP アドレス、アドオンノードには 2 つのアドレス、アップグレード中の一時的なノードには使用できる追加の IP アドレスが必要です。また、関連するユーザー クラスタごとに、ユーザー クラスタ コントロール プレーンに 1 つまたは 3 つのアドレスが必要です。各高可用性(HA)ユーザー クラスタには、ユーザー クラスタのコントロール プレーン用に管理クラスタに 3 つのノードが必要です。HA 以外の各ユーザー クラスタには、ユーザー クラスタのコントロール プレーンの管理ノードが 1 つ必要です。
たとえば、管理クラスタが、1 つの HA ユーザー クラスタと 1 つの HA 以外のユーザー クラスタに関連付けられているとします。削除後、次のノードに対応するには、8 つの IP アドレスが必要です。
- 管理クラスタのコントロール プレーン ノード
- 2 つのアドオンノード
- HA ユーザー クラスタのコントロール プレーン用の 3 つのノード
- HA 以外のユーザー クラスタのコントロール プレーン用の 1 つのノード
- アップグレード中に使用される一時ノード
手順は次のとおりです。
管理クラスタのコントロール プレーン ノードで使用されている IP アドレスを確認します。
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
出力で、コントロール プレーンとして表示されているノードを見つけます。その IP アドレスをメモしておきます。
gke-admin-master-hdn4z Ready control-plane,master … 198.51.100.101 ...
管理クラスタで、OnPremAdminCluster カスタム リソースを編集します。
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG edit onpremadmincluster --namespace kube-system
ADMIN_CLUSTER_KUBECONFIG は、管理クラスタの kubeconfig ファイルへのパスに置き換えます。
選択した IP アドレスを
ipBlocks
セクションから削除します。管理クラスタのコントロール プレーン ノードに使用されている IP アドレスは削除しないでください。network: ... ipMode: ipBlocks: - gateway: 198.51.100.254 ips: - hostname: admin-host1 ip: 198.51.100.101 - hostname: admin-host2 ip: 198.51.100.102 - hostname: admin-host3 ip: 198.51.100.103 - hostname: admin-host4 ip: 198.51.100.104 - hostname: admin-host5 ip: 198.51.100.105 - hostname: admin-host6 ip: 198.51.100.106 - hostname: admin-host7 ip: 198.51.100.107 - hostname: admin-host8 ip: 198.51.100.108 - hostname: admin-host9 ip: 198.51.100.109 netmask: 255.255.255.0 type: static
編集セッションを閉じます。
管理者クラスタで、デフォルトの名前空間内のすべての Machine オブジェクトを表示します。
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get machines --output yaml
削除した IP アドレスの一つを使用するすべての Machine オブジェクトを削除します。たとえば、アドレス 198.51.100.102 を削除し、
gke-admin-node-
Machine オブジェクトがそのアドレスを使用していることが判明したとします。Name: gke-admin-node-5678 Namespace: default ... Status: Addresses: Address: 198.51.100.102 Type: ExternalIP ...
次に、
gke-admin-node-5678
マシン オブジェクトを削除する必要があります。kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG delete machine gke-admin-node-5678
クラスタノード アドレスを表示します。
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get nodes --output wide
削除された IP アドレスが出力に表示されないことを確認します。次に例を示します。
gke-admin-master-hdn4z Ready control-plane,master 198.51.100.101 gke-admin-node-abcd Ready ... 198.51.100.103 gke-admin-node-efgh Ready ... 198.51.100.104 my-user-cluster-ijkl Ready ... 198.51.100.105 my-user-cluster-mnop Ready ... 198.51.100.106 my-user-cluster-qrst Ready ... 198.51.100.107 my-user-cluster-uvwx Ready ... 198.51.100.108