我使用以下配置文件创建了服务:
{
"kind":"Service",
"apiVersion":"v1",
"metadata":{
"name":"my-service",
"labels":{
"app":"my-service"
}
},
"spec":{
"ports": [
{
"port":8080,
"targetPort":"http-server"
}
],
"selector":{
"app":"my-service"
},
"type": "LoadBalancer"
}
}
执行以下命令:
$ kubectl create -f my-service.json
service "my-service" created
然后我想查看服务的外部地址:
$ kubectl get services
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-service 10.0.203.169 8080/TCP 3m
kubernetes 10.0.0.1 <none> 443/TCP 32m
在kubernetes应用程序的例子中,它说应该有一个“外部IP”列,它被设置:
$ kubectl get services
NAME CLUSTER_IP EXTERNAL_IP PORT(S) SELECTOR AGE
guestbook 10.0.217.218 146.148.81.8 3000/TCP app=guestbook 1h
redis-master 10.0.136.3 <none> 6379/TCP app=redis,role=master 1h
redis-slave 10.0.21.92 <none> 6379/TCP app-redis,role=slave 1h
...
kubectl事件未显示有关负载均衡器和服务的信息。
可能是什么问题?
如果有帮助,我正在使用AWS。
顺便说一下。如果我查看AWS控制台,我可以看到Load Balancer的DNS名称并连接到它。
答案 0 :(得分:2)
外部IP可能需要几分钟才能显示,因为云提供商(在这种情况下为EC2)需要一段时间才能为您配置负载均衡器。
如果几分钟后它没有出现,请运行kubectl get events
以查看哪些内容出错。
答案 1 :(得分:0)
如果您的输出看起来不像示例输出,那么您最有可能使用较早版本的kubectl
(人类友好的输出随着时间的推移而变化,变得更加人性化)。检查您的kubectl
版本,如果它不是最新版本(1.2.0或更新版本),请获取更新版本。
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.0", GitCommit:"5cb86ee022267586db386f62781338b0483733b3", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"2", GitVersion:"v1.2.2", GitCommit:"528f879e7d3790ea4287687ef0ab3f2a01cc2718", GitTreeState:"clean"}