kubernetes將外部服務映射爲內部服務

在實際應用中,一般不會把mysql這種重IO、有狀態的應用直接放入k8s中,而是使用專用的服務器來獨立部署。而像web這種無狀態應用依然會運行在k8s當中,這時web服務器要連接k8s管理之外的數據庫,有兩種方式:一是直接連接數據庫所在物理服務器IP,另一種方式就是藉助k8s的Endpoints直接將外部服務器映射爲k8s內部的一個服務。

下面這個例子就是展示Endpoints將外部服務映射爲k8s內部服務的例子。
將外部服務器的172.17.241.47、59.107.26.221的80端口映射到內部服務

cat << EOF > lykops-service.yaml
apiVersion: v1
kind: Service
metadata:
  name: lykops
spec:
  ports:
  - port: 80
    targetPort: 81
    protocol: TCP
EOF

cat << EOF > lykops-endpoints.yaml
apiVersion: v1
kind: Endpoints
metadata:
  name: lykops
subsets:
  - addresses:
    - ip: 172.17.241.47
    - ip: 59.107.26.221
    ports:
    - port: 80
      protocol: TCP
EOF

kubectl create -f test-endpoints.yaml
kubectl create -f test-service.yaml

Endpoints的subsets中指定了需要連接的外部服務器的IP和端口。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章