我正在关注Kubernetes in Action中的一个示例,在kubernetes中运行一个简单的docker镜像:
$ bx login --apikey @apiKey.json -a https://api.eu-de.bluemix.net
$ bx cs cluster-config my_kubernetes
$ export KUBECONFIG=..my_kubernetes.yml
接下来,运行容器:
$ kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1
$ kubectl expose rc kubia --type=LoadBalancer --name kubia-http
$ kubectl get service
$ kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.10.10.1 <none> 443/TCP 20h
kubia-http 10.10.10.12 <pending> 8080:32373/TCP 0m
十五分钟后......
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.10.10.1 <none> 443/TCP 20h
kubia-http 10.10.10.12 <pending> 8080:32373/TCP 15m
我在Kubernetes集群上没有运行任何其他东西。
答案 0 :(得分:3)
要关闭此处的线程,LoadBalancer不能用于精简版(又称免费)集群层。 Lite和标准集群之间的差异可以在这里找到 - https://console.bluemix.net/docs/containers/cs_planning.html#cs_planning。
答案 1 :(得分:1)
运行以下命令以确定是否存在任何失败事件。
kubectl describe svc kubia-http
答案 2 :(得分:1)
感谢Chris Rosen的answer,我找到了一个解决方法:
$ bx cs workers my_kubernetes
OK
ID Public IP Private IP Machine Type State Status
kube-par01-xxxxx 1.2.3.4 6.7.8.9 free normal Ready
请注意公共IP地址:1.2.3.4
使用NodePort公开服务:
$ kubectl expose rc kubia --type=NodePort --name kubia-http2
检查NodePort详细信息:
$ kubectl get svc
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes 10.10.10.1 <none> 443/TCP 21h
kubia-http2 10.10.10.193 <nodes> 8080:31247/TCP 10s
使用工作人员公共IP地址上的公开端口访问服务:
$ curl http://1.2.3.4:31247/
You've hit kubia-bjb59
答案 3 :(得分:0)
基于上面的帖子,我正在执行以下步骤:
先决条件:在IBM Cloud中创建一个免费的Kubernetes集群并遵循以下步骤(您需要安装ibmcloud和kubectl并首先连接到远程集群)
kubectl获取节点
应该返回类似这样的内容
NAME STATUS ROLES AGE VERSION
10.76.197.55 Ready <none> 4h18m v1.18.10+IKS
然后
创建了复制控制器/ nginx
service / nginx暴露
kubectl get svc
名称类型集群IP外部IP端口的年龄
nginx NodePort 172.21.19.73 80:30634 / TCP 70s
记下端口,在我的情况下为30634
kubectl描述节点| grep ExternalIP(以查找外部IP)
呼叫IP:端口
玩得开心!