Kubernetes服务ExternalName

时间:2019-11-23 15:04:37

标签: kubernetes

我在Kubernetes外部名称服务方面遇到一些问题。我想从群集访问服务器'dummy.restapiexample.com'。我创建了以下服务:

apiVersion: v1
kind: Service
metadata:
   name: dummy-svc
spec:
    type: ExternalName
    externalName: dummy.restapiexample.com   
$ kubectl get svc
NAME         TYPE           CLUSTER-IP   EXTERNAL-IP                PORT(S)   AGE
dummy-svc    ExternalName   <none>       dummy.restapiexample.com   <none>    33m
kubernetes   ClusterIP      100.64.0.1   <none>                     443/TCP   6d19h

但是当我尝试从同一名称空间的pod访问服务时,我得到的代码是HTTP 403。

$ curl -v http://dummy-svc/api/v1/employee/1
> GET /api/v1/employee/1 HTTP/1.1
> User-Agent: curl/7.35.0
> Host: dummy-svc
> Accept: */*
>
< HTTP/1.1 403 Forbidden
< Content-Type: text/plain
< Date: Sat, 23 Nov 2019 14:21:05 GMT 
< Content-Length: 9
<

我可以访问外部服务器而没有任何问题:

$ curl -v http://dummy.restapiexample.com/api/v1/employee/1                               │
> GET /api/v1/employee/1 HTTP/1.1 
> User-Agent: curl/7.35.0 
> Host: dummy.restapiexample.com
> Accept: */*                                                                                            
< HTTP/1.1 200 OK 
...
< Content-Length: 104
{"id":"1","employee_name":"56456464646","employee_salary":"2423","employee_age":"23","profile_image":""}

我的代码有什么问题?任何提示将不胜感激。该集群在AWS上运行,并安装了kops。

1 个答案:

答案 0 :(得分:3)

如Patrik W所指出,该服务正常运行。它将请求路由到远程服务器。 Ping到达远程服务器:

$ ping dummy-svc

PING dummy.restapiexample.com (52.209.246.67) 56(84) bytes of data.
64 bytes from ec2-52-209-246-67.eu-west-1.compute.amazonaws.com (52.209.246.67): icmp_seq=1 ttl=62 time=1.29 ms

由于网址不同,从远程服务器收到的代码403。

@Patrik W:谢谢您的帮助。