第16章 Kuryr SDN の設定
16.1. Kuryr SDN および OpenShift Container Platform
Kuryr SDN の設定機能はテクノロジープレビュー機能です。テクノロジープレビュー機能は Red Hat の実稼働環境でのサービスレベルアグリーメント (SLA) ではサポートされていないため、Red Hat では実稼働環境での使用を推奨していません。これらの機能は、近々発表予定の製品機能をリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
Red Hat のテクノロジープレビュー機能のサポートについての詳細は、https://access.redhat.com/support/offerings/techpreview/ を参照してください。
Kuryr (具体的には Kuryr-Kubernetes) は、CNI と OpenStack Neutron を使用して構築した SDN ソリューションです。Kuryr の利点として、幅広い Neutron SDN バックエンドを使用でき、Kubernetes Pod と OpenStack 仮想マシン (VM) の相互接続性が確保できる点が挙げられます。
Kuryr-Kubernetes と OpenShift Container Platform の統合は主に、OpenStack の仮想マシンで実行される OpenShift Container Platform クラスター用に設計されました。Kuryr-Kubernetes コンポーネントは OpenShift Container Platform の openshift-infra namespace に Pod としてインストールされます。
-
kuryr-controller: 任意のノードにインストールされる単一のサービスインスタンスです。
Deploymentとして OpenShift Container Platoform でモデリングされます。 -
kuryr-cni: 各 OpenShift Container Platform ノードで Kuryr を CNI ドライバーとしてインストールし、設定するコンテナーです。
DaemonSetとして OpenShift Container Platoform でモデリングされます。
16.2. インストール
openshift-ansible を実行するシステムは OSP および OCP リポジトリーにサブスクライブしている必要があります。OpenStack 統合ではいくつかの追加パッケージが必要になります。依存関係をインストールするには、以下を実行します。
$ sudo yum install -y ansible openshift-ansible python2-shade python-dns \
python2-heatclient python2-octaviaclient python-openstackclient bind-utilsKuryr-Kubernetes をネットワークプラグインとしてセットアップするために、Ansible ノードファイルで以下のパラメーターを指定します。
# Enable Kuryr. openshift_use_openshift_sdn=False openshift_use_kuryr=True os_sdn_network_plugin_name=cni # Set userspace so that there are no iptables remains. openshift_node_proxy_mode='userspace' # Disable management of the OpenShift Registry and OpenShift Router. If you # need those services, install them manually after OpenShift deployment using # `oadm`. This way services will get correct IPs provided by Kuryr. openshift_hosted_manage_registry=false openshift_hosted_manage_router=false # Keystone URL. kuryr_openstack_auth_url=http://127.0.0.1/identity # OpenStack domain name of user owning Kuryr resources. kuryr_openstack_user_domain_name=default # OpenStack project name of user owning Kuryr resources. kuryr_openstack_user_project_name=admin # OpenStack project id for Kuryr resources. kuryr_openstack_project_id=ec0b31802fd043c08bc15b74d2f9a3d3 # OpenStack username that will own kuryr resources. kuryr_openstack_username=admin # Password for that user. kuryr_openstack_password=password # Default Neutron security groups' IDs for Kubernetes pods kuryr_openstack_pod_sg_id=f74c83a8-a520-421a-930e-21b6cd098c6a,01f85594-9950-4ded-a92c-5ad546a41188 # Default Neutron subnet ID for Kubernetes pods. kuryr_openstack_pod_subnet_id=c85cdee6-0ed1-4d8f-ae61-7afa4674b311 # Default OpenStack project ID for Kubernetes resources. kuryr_openstack_pod_project_id=ec0b31802fd043c08bc15b74d2f9a3d3 # Neutron subnet ID for Kubernetes worker node VMs. kuryr_openstack_worker_nodes_subnet_id=477cfa49-e641-4d31-a7b5-5bc834743f61 # Default Neutron subnet ID for Kubernetes services. kuryr_openstack_service_subnet_id=3b31a106-4084-4db9-bc0c-00b97afe186e
インストール前に、OpenShift Container Platform ノードが内部名の解決に使用する DNS サーバーを指定する必要もあります。OpenStack はノード名の解決を追加設定なしで提供しません。以下の例では、10.20.30.40 は DNS サーバーの IP アドレスになります。
openshift_openstack_dns_nameservers=[10.20.30.40]
DNS サーバーが nsupdate (RFC 2136) でリモート更新をサポートする場合、以下の設定を追加すると、Playbook はこれを自動的に設定できます。
openshift_openstack_external_nsupdate_keys={private: {"key_secret": "<nsupdate key>", "key_algorithm": "<nsupdate key algorithm>", "key_name": "<nsupdate key name>", "server": 10.20.30.40}}最後に、provision_install.yml Playbook を実行して OpenShift Container Platform をインストールします。動的インベントリーファイル (inventory.py) を指定し、作成した Ansible ノードのファイルのパスを指定する必要があります。
$ ansible-playbook --user openshift -i /usr/share/ansible/openshift-ansible/playbooks/openstack/inventory.py -i ansible-nodes.txt /usr/share/ansible/openshift-ansible/playbooks/openstack/openshift-cluster/provision_install.yml
作成したノードでカスタム設定してから OpenShift Container Platform をインストールする場合には、provision.yml および install.yml Playbook を別に実行してください。provision.yml は OpenStack リソース (ノードやネットワークなど) を作成し、install.yml は OpenShift Container Platform をインストールします。
16.3. 検証
OpenShift Container Platform のインストールが完了したら、Kuryr Pod が正常にデプロイされているかどうかを確認できます。
$ oc -n openshift-infra get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE bootstrap-autoapprover-0 1/1 Running 0 3d 10.11.0.7 master-0.openshift.example.com kuryr-cni-ds-66kt2 2/2 Running 0 3d 192.168.99.14 infra-node-0.openshift.example.com kuryr-cni-ds-ggcpz 2/2 Running 0 3d 192.168.99.16 master-0.openshift.example.com kuryr-cni-ds-mhzjt 2/2 Running 0 3d 192.168.99.6 app-node-1.openshift.example.com kuryr-cni-ds-njctb 2/2 Running 0 3d 192.168.99.12 app-node-0.openshift.example.com kuryr-cni-ds-v8hp8 2/2 Running 0 3d 192.168.99.5 infra-node-1.openshift.example.com kuryr-controller-59fc7f478b-qwk4k 1/1 Running 0 3d 192.168.99.5 infra-node-1.openshift.example.com
kuryr-cni Pod は、すべての OpenShift Container Platform ノードで実行する必要があります。単一の kuryr-controller インスタンスはこれらのノードのいずれかで実行する必要があります。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.