3.2.3. NodePort サービス
公開するサービスが HTTP ベースではない場合には、NodePort サービスを作成できます。この場合、各 OpenShift ノードは、そのポートをサービスにプロキシーします。CDK 仮想マシンでこのポートにアクセスするには、type=LoadBalancer
パラメーターで oc expose
を使用して Ingress IP を設定する必要があります。
Ingress IP Self-Service の一般的なユースケースは、データベースサービスを公開する機能です。CDK を使用して MariaDB インスタンスを作成および公開する完全なワークフローの例を以下に示します。
minishift start eval $(minishift oc-env) oc new-app -e MYSQL_ROOT_PASSWORD=admin https://raw.githubusercontent.com/openshift/origin/master/examples/db-templates/mariadb-persistent-template.json oc rollout status -w dc/mariadb oc expose dc mariadb --type=LoadBalancer --name=mariadb-ingress oc export svc mariadb-ingress
$ minishift start
$ eval $(minishift oc-env)
$ oc new-app -e MYSQL_ROOT_PASSWORD=admin https://raw.githubusercontent.com/openshift/origin/master/examples/db-templates/mariadb-persistent-template.json
$ oc rollout status -w dc/mariadb
$ oc expose dc mariadb --type=LoadBalancer --name=mariadb-ingress
$ oc export svc mariadb-ingress
....
ports:
- nodePort: 30907
....
サービスが公開されると、CDK 仮想マシン IP および公開された NodePort サービスを使用して、CLI の mysql
で MariaDB にアクセスできます。
mysql --user=root --password=admin --host=$(minishift ip) --port=30907
$ mysql --user=root --password=admin --host=$(minishift ip) --port=30907