k 8 s学習(四)k 8 s nodeport方式を用いてサービス対外暴露サービスを構成する

2540 ワード

Podはライフサイクルがあり、誰もが死んでpodを記述するのに適しており、1つのワークノード(node)が破棄されると、ノード上で実行されるpodsも破棄され、ReplicationControllerは他のノード上で動的にPodを作成してアプリケーションの実行を維持し、各Podには独立したIPアドレス、さらには同じノード上のPodがあります.PodのIPは動的であり、Podの作成に伴って作成され、Podの破棄に伴って消失していることがわかります.これは、Podsのセットからなるクラスタがサービスを提供する場合、これらのPodsにどのようにアクセスするかという問題を引き起こします.Kubenetesのサービスはこの問題を解決するために使われています.1つのサービスは、同じサービスを提供するPodsの対外アクセスインタフェースのセットと見なすことができ、どのPodsがlabel selectorによって定義され、これらのPodsがサービスにアクセスできるか、Pod間の検出およびルーティング(アプリケーションのフロントエンドおよびバックエンドコンポーネントなど)は、Kubernetesサービスによって処理されます.サービスには、4つのタイプがあります.ClousterIP(デフォルト)、NodePort、LoadBalancer、ExternalName.NodePort、LoadBalancerの2つのタイプのサービスが外部に提供されます.これは、NodePortを使用して構成されます.
1、yamlサービスを作成する.yaml
---
apiVersion: v1
kind: Service
metadata:
  name: kube-node-service
  labels:
    name: kube-node-service
spec:
  type: NodePort      #     NodePort   
  ports:
  - port: 8080        #      clusterIP  , ip:8080,     。
    targetPort: 8080  #      container         
    protocol: TCP
    nodePort: 32143   #             ,        。
  selector:
    app: web          #               ,   name:kube-node   。

2、yamlを適用する
kubectl create -f service.yaml

3、配置が正しいかどうかを検査する
//       
[root@k8s-node1 k8s]# curl 192.168.100.89:32143/index
hello,world

[root@k8s-node1 k8s]# kubectl get services
NAME                TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kube-node-service   NodePort    10.96.77.110           8080:32143/TCP   21m
kubernetes          ClusterIP   10.96.0.1              443/TCP          4d

//      (clusterIp:PORT)
curl 10.96.77.110:8080

[root@k8s-node1 k8s]# curl 10.96.77.110:8080/index
hello,world

[root@k8s-node1 k8s]# kubectl get pods -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP            NODE        NOMINATED NODE   READINESS GATES
kube-node-87dcfc9cf-9kj8j   1/1     Running   0          75m   10.244.1.23   k8s-node3              
kube-node-87dcfc9cf-l2ppz   1/1     Running   0          75m   10.244.2.24   k8s-node2              

[root@k8s-node1 k8s]# curl 10.244.1.23:8080/index
hello,world

[root@k8s-node1 k8s]# curl 10.244.2.24:8080/index
hello,world

//  slave    
[root@k8s-node1 k8s]# curl 192.168.100.91:32143/index
hello,world
[root@k8s-node1 k8s]# curl 192.168.100.92:32143/index
hello,world

         http://192.168.100.89:32143/index
				 http://192.168.100.91:32143/index
				 http://192.168.100.92:32143/index