4.5.2. ノードグループの定義
最新の openshift-ansible パッケージのインストール後に、ノードグループ定義のデフォルトセットを /usr/share/ansible/openshift-ansible/roles/openshift_facts/defaults/main.yml ファイル内で YAML 形式で確認することができます。
openshift_node_groups: - name: node-config-master 1 labels: - 'node-role.kubernetes.io/master=true' 2 edits: [] 3 - name: node-config-infra labels: - 'node-role.kubernetes.io/infra=true' edits: [] - name: node-config-compute labels: - 'node-role.kubernetes.io/compute=true' edits: [] - name: node-config-master-infra labels: - 'node-role.kubernetes.io/infra=true,node-role.kubernetes.io/master=true' edits: [] - name: node-config-all-in-one labels: - 'node-role.kubernetes.io/infra=true,node-role.kubernetes.io/master=true,node-role.kubernetes.io/compute=true' edits: []
openshift_node_groups
変数をインベントリーファイルの [OSEv3:vars]
グループに設定しない場合、これらのデフォルト値が使用されます。ただし、カスタムノードグループを設定する必要がある場合、計画されているすべてのノードグループを含む、openshift_node_groups
構造をインベントリーファイルに定義する必要があります。
openshift_node_groups
値はデフォルト値にマージされないため、YAML 定義を Python ディクショナリーに変換する必要があります。次に、edits
フィールドを設定し、キーと値のペアを指定してノード設定変数を変更できます。
設定可能なノード変数に関する情報は、Master and Node Configuration Files を参照してください。
たとえば、インベントリーファイルの以下のエントリーは、node-config-master
、node-config-infra
および node-config-compute
という名前のグループを定義します。
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true']}]
新規ノードグループ名を他のラベルで定義することもできます。 インベントリーファイルの以下のエントリーは、node-config-master
、node-config-infra
、node-config-compute
および node-config-compute-storage
という名前のグループを定義します。
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true']}, {'name': 'node-config-compute-storage', 'labels': ['node-role.kubernetes.io/compute-storage=true']}]
-
node-config-compute
グループをkubelet
に 2 つのパラメーターを追加するために変更するなど、複数のキーと値のペアを変更するために一覧を使用できます。
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true'], 'edits': [{ 'key': 'kubeletArguments.experimental-allocatable-ignore-eviction','value': ['true']}, {'key': 'kubeletArguments.eviction-hard', 'value': ['memory.available<1Ki']}]}]
-
node-config-compute
グループをperFSGroup
を512Mi
に設定するために変更するなど、ディクショナリーを値として使用することができます。
openshift_node_groups=[{'name': 'node-config-master', 'labels': ['node-role.kubernetes.io/master=true']}, {'name': 'node-config-infra', 'labels': ['node-role.kubernetes.io/infra=true']}, {'name': 'node-config-compute', 'labels': ['node-role.kubernetes.io/compute=true'], 'edits': [{ 'key': 'volumeConfig.localQuota','value': {'perFSGroup':'512Mi'}}]}]
openshift_node_group.yml Playbook が実行されるたびに、edits
フォールドで定義した変更により、関連の ConfigMap (この例では node-config-compute
) が更新され、最終的にホスト上のノードの設定ファイルに影響を与えます。
openshift_node_group.yaml Playbook を実行すると、新規ノードのみが更新されます。クラスター内の既存ノードを更新するために実行することはできません。