haixin3036 发表于 2018-1-5 14:37:48

[置顶]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 > test-service.yaml  
apiVersion: v1
  
kind: Service
  
metadata:
  name: test
  
spec:
  ports:
  - port: 80
  targetPort: 81
  protocol: TCP
  
EOF
  

  
cat << EOF > test-endpoints.yaml
  
apiVersion: v1
  
kind: Endpoints
  
metadata:
  name: test
  
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和端口。
页: [1]
查看完整版本: [置顶]kubernetes将外部服务映射为内部服务