如何解决尝试在minikube中公开Docker容器时发生错误
我正在使用minikube了解docker,但遇到了一个问题。
我正在跟着《 Kubernetes in Action》中的示例,我正在尝试获取一个从我的docker hub账户中拉出的Pod,但是我无法使该Pod可见。
如果我跑步
kubectl get pod
我可以看到豆荚存在。
NAME READY STATUS RESTARTS AGE
kubia 1/1 Running 1 6d22h
但是,当我执行创建服务的第一步时
kubectl expose rc kubia --type=LoadBalancer --name kubia-http service "kubia-http" exposed
我正在返回此错误
Error from server (NotFound): replicationcontrollers "kubia" not found
Error from server (NotFound): replicationcontrollers "service" not found
Error from server (NotFound): replicationcontrollers "kubia-http" not found
Error from server (NotFound): replicationcontrollers "exposed" not found
有什么主意为什么会出现此错误以及我需要做些什么来纠正它?
我在Mac Mojave(v10.14.6)上使用minikube v1.13.1,由于我使用的是公司提供的计算机,并且所有更新均由总部控制,因此无法升级。
解决方法
与在Kubernetes中创建服务和部署,结帐this answer相比,复制控制器是更旧的概念。
服务模板如下所示:
{type: Map}
然后将服务配置保存到文件中后,您apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: App
ports:
- protocol: tcp
port: 80
targetPort: 8080
在https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
处查看更多内容 ,在本书中,使用的命令是kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1
,该命令用于在撰写本书时创建ReplicationController
,但是当前已取消使用此对象。
现在kubectl run
命令创建不带有ReplicationController的独立pod。因此,要公开它,您应该运行:
kubectl expose pod kubia --type=LoadBalancer --name kubia-http
为了创建复制,建议使用Deployment
。要使用CLI创建它,您只需运行
kubectl create deployment <name_of_deployment> --image=<image_to_be_used>
它将创建一个部署和一个吊舱。然后可以像以前的pod曝光一样进行曝光:
kubectl expose deployment kubia --type=LoadBalancer --name kubia-http
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。