18.8. チュートリアル: ネットワーク
このチュートリアルでは、OSToy アプリケーションがクラスター内ネットワークを使用してマイクロサービスによって機能を分離し、Pod のスケーリングを視覚化する方法を説明します。
この図は、それぞれ独自のサービスを持つ少なくとも 2 つの個別の Pod があることを示しています。
1 つの Pod は、サービスとパブリックにアクセス可能なルートを備えたフロントエンド Web アプリケーションとして機能します。もう一方の Pod は、フロントエンド Pod がマイクロサービスと通信できるように、サービスオブジェクトを備えたバックエンドマイクロサービスとして機能します。この通信は、Pod が複数ある場合に、Pod 間で行われます。これらの通信制限のため、このマイクロサービスは、このクラスターの外部から、または他の namespace やプロジェクト (設定されている場合) からはアクセスできません。このマイクロサービスの唯一の目的は、内部 Web リクエストを処理し、現在のホスト名 (Pod の名前) とランダムに生成された色の文字列を含む JSON オブジェクトを返すことです。この色文字列は、"Intra-cluster Communication" というタイトルのタイルにその色のボックスを表示するために使用されます。
ネットワークの制限の詳細は、ネットワークポリシーについて を参照してください。
18.8.1. クラスター内ネットワーク
OSToy アプリケーションでネットワーク設定を表示できます。
手順
- OSToy アプリケーションで、左側のメニューの Networking をクリックします。
ネットワーク設定を確認します。"Hostname Lookup" というタイトルの右側のタイルは、Pod 用に作成されたサービス名を使用して内部 ClusterIP アドレスに変換する方法を示しています。
右側のタイルに ("Hostname Lookup") に
<service_name>.<namespace>.svc.cluster.local
の形式で作成したマイクロサービスの名前を入力します。次のコマンドを実行すると、ostoy-microservice.yaml
のサービス定義でこのサービス名を見つけることができます。$ oc get service <name_of_service> -o yaml
出力例
apiVersion: v1 kind: Service metadata: name: ostoy-microservice-svc labels: app: ostoy-microservice spec: type: ClusterIP ports: - port: 8080 targetPort: 8080 protocol: TCP selector: app: ostoy-microservice
この例では、完全なホスト名は、
ostoy-microservice-svc.ostoy.svc.cluster.local
です。返された IP アドレスが表示されます。上記の例では、
172.30.165.246
になります。これはクラスター内 IP アドレスであり、クラスター内からのみアクセスできます。