k8sでのポート、ノードポート、ターゲットポートの概念

1. 3種類のポートが異なる場所で使用されている

port是service的端口

targetport是pod(也就是容器)的端口

nodeport是容器所在node节点的端口(实质上也是通过nodeport类型的service暴露给集群节点,但port没有service类型)

2. 3種類のポートの機能が異なる

ポートの主な機能は、クラスター内の他のポッドがこのポッドにアクセスするときにポートが必要になることです。たとえば、nginxポッドがmysqlポッドにアクセスする場合、mysqlポッドサービスは次のように定義できます。

apiVersion: v1
kind: Service
metadata:
  name: mysql-service
spec:
  ports:
  - port: 33306
    targetPort: 3306
  selector:
   name: mysql-pod

ポートはサービスのポートであり、nginxはサービスのポート3306にアクセスすることが理解できます。

  • ターゲットポート

同様に、targetportはポッドによって公開されたポートであり、nginxからのリクエストがサービスのポート3306に到達すると、サービスはセレクタ内の名前に従ってmysql-podのポート3306にリクエストを転送します。

  • ノードポート

Nodeportはよく理解されています。これは、クラスタ内のサービスにアクセスするときに、クラスタ外のクライアントがアクセスするポートです。たとえば、顧客は以下のクラスタのnginxにアクセスします。

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 

3.まとめ

  • nodeportは、nginx、apacheへのクライアントアクセスなど、クラスター内のサービスにアクセスするためのクラスター外のトラフィックのポートタイプです。

  • portは、クラスター内のポッドが相互に通信するために使用するポートタイプです。たとえば、nginxはmysqlにアクセスし、mysqlはクラスター外のクライアントからアクセスする必要はありません

  • 名前が示すとおり、targetportは最終ポートであるターゲットポート、つまりポッドのポート

おすすめ

転載: blog.csdn.net/yjk13703623757/article/details/108530820
おすすめ