Kubernetes 导入外部服务
本文使用的 yaml 文件:
git clone https://github.com/introclass/kubernetes-yamls
cd kubernetes-yamls/ingress-nginx/05-1-external-svc
启动一个外部服务
启动一个位于集群外部的服务:
./start-github-oauth2-proxy.sh
这里的服务地址为 192.168.99.1:4180,将这个服务导入到 kubernetes 中。
导入到 kubernetes 中
为外部服务创建 Service 和一个与 Service 同名的 endpoint,endpoint 中填入外部服务的 IP。
名为 external-github-oauth-proxy 的 Service:
kind: Service
apiVersion: v1
metadata:
name: external-github-oauth-proxy
spec:
type: ClusterIP
ports:
- port: 4180
targetPort: 4180
同名的 endpoint:
kind: Endpoints
apiVersion: v1
metadata:
name: external-github-oauth-proxy
subsets:
- addresses:
- ip: 192.168.99.1
ports:
- port: 4180
创建:
$ kubectl -n demo-echo create -f external-github-oauth2-proxy.yaml
导入效果
导入后可以像使用其它服务一样使用外部服务,譬如在 ingress 中配置外部服务:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: github-oauth2-proxy
spec:
rules:
- host: github-oauth2.example
http:
paths:
- backend:
serviceName: github-oauth2-proxy
servicePort: 4180
path: /
创建:
$ kubectl -n demo-echo create github-oauth-proxy.yaml