service與pod關聯


當我們創建pod時,僅僅是創建了pod,要為其創建rc(ReplicationController),他才會有固定的副本,然后為其創建service,集群內部才能訪問該pod,使用 NodePort 或者 LoadBalancer 類型的 Service,外部網絡也可以訪問該pod;每個 service 會創建出來一個虛擬 ip,通過訪問 vip:port 就能獲取服務的內容(內部訪問,因為這是一個vip,外部無法訪問的)
創建service時,其配置文件中的selector:指定后端綁定的pod,例如serviceA的selector:
app:whoimi
env:dev
然后有一個podA,
labels:
app:whoimi
env:dev
然后有一個podB,
labels:
app:whoimi
env:dev
那么我們的serviceA 就會綁定podA,podB,綁定的pod的ip會填寫到serviceA的endpoint中,內部訪問(vip:port方式訪問)serviceA,根據serviceA的vip:port直接訪問,serviceA會隨機的將服務轉發給后端的pod(podA,podB)

# cat nginx01.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment01
spec:
  selector:
    matchLabels:
      env: prod
  replicas: 1
  template:
    metadata:
      labels:
        env: prod
    spec:
      containers:
      - name: nginx
        image: nginx:1.11
        ports:
        - containerPort: 80
# cat nginx02.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment02
spec:
  selector:
    matchLabels:
      env: prod
  replicas: 1
  template:
    metadata:
      labels:
        env: prod
    spec:
      containers:
      - name: nginx
        image: nginx:1.11
        ports:
        - containerPort: 80
# cat service-test.yaml 
apiVersion: v1 
kind: Service 
metadata: 
  name: nginx-service 
spec: 
  selector:      
    env: prod
  ports: 
  - name: http 
    protocol: TCP
    port: 80      
    targetPort: 80 
    nodePort: 30011
  type: NodePort


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM