クーバーラーニング-サービス


いわゆるクバーネディスサービス
サービスコンセプト
コントローラとサービス
コントローラ(他のコントローラも)で作られたpodのエントリポイントipを持つ.
deployment.yaml
service.yaml
apiVersion: v1
kind: Service
metadata:
  name: webui-svc
spec:
  clusterIP: 10.96.100.100 // 보통 생략한다. 버츄얼 IP, LB Ip
  selector:
    app:webui
  ports:
  - protocol: TCP
    port: 80 // 클러스터 IP의 포트
    targetPort: 80 // Pod의 포트
4つのサービス・タイプ
ClusterIP
:単一エントリポイント、最小基本、仮想IP、サービスAPI
ランダムアクセス(ラウンドロビンX)
apiVersion: v1
kind: Service
metadata:
  name: clusterip-service
spec:
  type: ClusterIP  // 타입지정
  clusterIP: 10.100.100.100  //고정 ip
  selector:
    app: webui  // 셀렉터를 통해 labels를 묶어준다.
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
NodePort
:クラスタipを作成した後、すべての作業ノードの外部接続可能ポートを保持し、ノードに拡張します.
Default NodePort範囲:30000-32767
apiVersion: v1
kind: Service
metadata:
  name: nodeport-service
spec:
  type: NodePort  //
  clusterIP: 10.100.100.100
  selector:
    app: webui
  ports:
  - protocol: TCP
    port: 80
    targetPort: 80
    nodePort: 30200  // 10.100.100.100:30200으로 접속하면 Pod에 랜덤으로 접속
LoadBalancer
:共通クラウド(awsgcp Azure)にのみ適用され、ロードバランサ機能を備えている
ExternalName
:DNS機能をサポートする
<サービス名>です.default.svc.cluster.local ==> google.comに接続
サービスの使用
リースサービス
  • クラスタIPサービスなし、単一のログインなしで
  • を使用
    DNSレコードは、
  • サービスに関連付けられたPodエンドポイントとして記録される(DNSロールバックサービスはサポートされていますか?)
  • core DNS
    <>.default.pod.cluster.local
  • StatefulSetの
  • apiVersion: v1
    kind: Service
    ...
    
    spec:
      type: ClusterIP
      clusterIP: None // 헤드리스 서비스 설정
      selector:
        app: webui
    kube-proxy
    ロード・バランシング・ロール、クバーネディス・ネットワーク・サービスをサポート
    iptablesのルールを作成します.