K 8 s混点分析:nodePort、port、taget Port
2253 ワード
1.nodePort
外部流量アクセスk 8 sクラスタ内のservice入口の1つの方法(別の方法はLoadBalancer)、すなわち
例えば、外部ユーザがk 8 sクラスタの一つのWebアプリケーションにアクセスするなら、serviceに対応する
データベースなどのサービスは外部からアクセスする必要がないかもしれません.内部サービスにアクセスすればいいです.サービスのNodePortを設定する必要はありません.
2.ポート
k 8 sクラスタ内部サービス間でserviceの入口にアクセスする.すなわち
mysql容器は3306ポートを暴露しました.クラスタ内の他の容器は33306ポートを通じてmysqlサービスにアクセスしましたが、外部流量はmysqlサービスにアクセスできません.mysqlサービスはNodePortが配置されていません.対応するservice.yamlは以下の通りです.
容器のポート(最終流量ポート).ターゲットPortはpod上のポートで、portとnodePortからの流量は、クビー-proxyを経由してバックエンドpodのターゲットPortに流れ込み、最後にコンテナに入ります.
コンテナ作成時に露出されたポートと一致しており(Docker FileのEXPOSEを使用して)、例えばオフィシャルのnginx(Docker Fileを参照して)80ポートが露出されている.対応するservice.yamlは以下の通りです.
全体として、ポートとnodePortはserviceのポートであり、前者はk 8 sクラスタ内部サービスへのアクセスに曝され、後者はk 8 sクラスタ外部トラフィックへのアクセスに曝される.前の二つのポートから来たデータは全部逆プロキシクビーproxyを経て後端podのターゲットPortに流れ込み、最後にpod内の容器に到達する必要があります.
5.参考文章
Kubergnetesの中のnodePort、taget Port、portの違いと意味
Kbernetesにおけるポータブル、target port、node portの比較分析、およびkube-proxyエージェント
外部流量アクセスk 8 sクラスタ内のservice入口の1つの方法(別の方法はLoadBalancer)、すなわち
nodeIP:nodePort
は外部流量アクセスk 8 sクラスタ内のserviceへの入り口である.例えば、外部ユーザがk 8 sクラスタの一つのWebアプリケーションにアクセスするなら、serviceに対応する
type=NodePort
、nodePort=30001
を構成することができる.他のユーザは、ブラウザhttp://node:30001
を介してウェブサービスにアクセスすることができる.データベースなどのサービスは外部からアクセスする必要がないかもしれません.内部サービスにアクセスすればいいです.サービスのNodePortを設定する必要はありません.
2.ポート
k 8 sクラスタ内部サービス間でserviceの入口にアクセスする.すなわち
clusterIP:port
は、サービスがcluster IPに露出されるポートである.mysql容器は3306ポートを暴露しました.クラスタ内の他の容器は33306ポートを通じてmysqlサービスにアクセスしましたが、外部流量はmysqlサービスにアクセスできません.mysqlサービスはNodePortが配置されていません.対応するservice.yamlは以下の通りです.
apiVersion: v1
kind: Service
metadata:
name: mysql-service
spec:
ports:
- port: 33306
targetPort: 3306
selector:
name: mysql-pod
3.taget Port容器のポート(最終流量ポート).ターゲットPortはpod上のポートで、portとnodePortからの流量は、クビー-proxyを経由してバックエンドpodのターゲットPortに流れ込み、最後にコンテナに入ります.
コンテナ作成時に露出されたポートと一致しており(Docker FileのEXPOSEを使用して)、例えばオフィシャルのnginx(Docker Fileを参照して)80ポートが露出されている.対応するservice.yamlは以下の通りです.
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: NodePort // NodePort, k8s
ports:
- port: 30080 //
targetPort: 80 //
nodePort: 30001 // NodePort
selector:
name: nginx-pod
4.まとめ全体として、ポートとnodePortはserviceのポートであり、前者はk 8 sクラスタ内部サービスへのアクセスに曝され、後者はk 8 sクラスタ外部トラフィックへのアクセスに曝される.前の二つのポートから来たデータは全部逆プロキシクビーproxyを経て後端podのターゲットPortに流れ込み、最後にpod内の容器に到達する必要があります.
5.参考文章
Kubergnetesの中のnodePort、taget Port、portの違いと意味
Kbernetesにおけるポータブル、target port、node portの比較分析、およびkube-proxyエージェント