3.5. ネットワーク接続
ネットワーク接続には、ノードの対話用のクラスターネットワークと Pod の対話用の SDN (Software Defined Network) という 2 つの主要なネットワーク層が含まれます。OpenShift Container Platform は複数のネットワーク設定をサポートし、これらの設定は特定のインフラストラクチャープロバイダー向けに最適化されることがよくあります。
ネットワークが複雑であることから、本書ではすべての検証シナリオについては扱いません。
3.5.1. マスターホストでの接続性
etcd およびマスターホスト
マスターサービスは etcd キー値ストアを使用してそれらの同期状態を維持します。マスターと etcd サービス間の通信は、それらの etcd サービスがマスターホストの同じ場所に置かれている場合でも、etcd サービス用にのみ指定されるホストで実行されている場合でも重要になります。この通信は TCP ポート 2379
および 2380
で実行されます。この通信をチェックする方法については、ホストの健全性 のセクションを参照してください。
SkyDNS
SkyDNS
は、OpenShift Container Platform で実行されるローカルサービスの名前解決を行います。このサービスは TCP
および UDP
ポート 8053
を使用します。
名前解決を確認するには、以下を実行します。
$ dig +short docker-registry.default.svc.cluster.local 172.30.150.7
応答が以下の出力に一致する場合、SkyDNS
サービスは適切に機能していることになります。
$ oc get svc/docker-registry -n default NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE docker-registry 172.30.150.7 <none> 5000/TCP 3d
API サービスおよび Web コンソール
API サービスおよび Web コンソールはどちらも同じポート (セットアップによって異なりますが、通常は TCP
8443
または 443
) を共有します。このポートはクラスター内で、またデプロイされた環境で作業する必要のあるすべてのユーザーにとって利用可能な状態である必要があります。このポートに到達するために使用される URL は内部クラスターおよび外部クライアント用に異なる場合があります。
以下の例では、https://internal-master.example.com:443
URL は内部クラスターで、https://master.example.com:443
URL は外部クライアントで使用されています。任意のノードホストで以下を実行します。
$ curl -k https://internal-master.example.com:443/version { "major": "1", "minor": "6", "gitVersion": "v1.6.1+5115d708d7", "gitCommit": "fff65cf", "gitTreeState": "clean", "buildDate": "2017-10-11T22:44:25Z", "goVersion": "go1.7.6", "compiler": "gc", "platform": "linux/amd64" }
これはクライアントのネットワークから到達可能である必要があります。
$ curl -k https://master.example.com:443/healthz ok
内部および外部マスター URL の決定
次のコマンドを使用して、内部クラスターと外部クライアントによって使用される URL を判別できます。URL の例は、前の例にあります。
内部クラスター URL を判別するには、次のようにします。
$ grep masterURL /etc/origin/master/master-config.yaml
外部クライアント URL を判別するには、次のようにします。
$ grep masterPublicURL /etc/origin/master/master-config.yaml