5.2. サービスネットワーク上の TCP または HTTP2 トラフィックへの TLS の適用
デフォルトでは、サイト間のトラフィックは暗号化されますが、サービス Pod とルーター Pod 間のトラフィックは暗号化されません。TCP または HTTP2 として公開されているサービスでは、Pod とルーター Pod 間のトラフィックを TLS を使用して暗号化することができます。
前提条件
- 2 つ以上のリンクされたサイト
- TCP または HTTP2 フロントエンドおよびバックエンドサービス
手順
- バックエンドサービスをデプロイします。
TLS を有効にして、サービスネットワークにバックエンドデプロイメントを公開します。
たとえば、TCP サービスを公開する場合は、以下を実行します。
$ skupper expose deployment <deployment-name> --port 443 --enable-tls
TLS を有効にすると、TLS バックエンドに必要な証明書が作成され、
skupper-tls-<deployment-name>
という名前のシークレットに保存されます。生成された証明書を含めるようにバックエンドデプロイメントを変更します。以下に例を示します。
... spec: containers: ... command: ... - "/certs/tls.key" - "/certs/tls.crt" ... volumeMounts: ... - mountPath: /certs name: certs readOnly: true volumes: - name: index-html configMap: name: index-html - name: certs secret: secretName: skupper-tls-<deployment-name>
各サイトは、TLS クライアントに必要な証明書を作成し、
skupper-service-client
という名前のシークレットに保存します。生成された証明書を含めるようにフロントエンドデプロイメントを変更します。以下に例を示します。
spec: template: spec: containers: ... volumeMounts: - name: certs mountPath: /tmp/certs/skupper-service-client ... volumes: - name: certs secret: secretName: skupper-service-client
- TLS が有効なフロントエンドからのサービスの呼び出しをテストします。