尝试在 minikube 中公开 docker 容器时出错

Dar*_*Guy 7 kubernetes minikube

我正在使用 minikube 来学习 docker,但遇到了一个问题。

我正在按照 Kubernetes in Action 中的示例进行操作,并且尝试获取从 docker hub 帐户中提取的 pod,但我无法使该 pod 可见。

如果我跑

kubectl get pod
Run Code Online (Sandbox Code Playgroud)

我可以看到 pod 存在。

NAME    READY   STATUS    RESTARTS   AGE
kubia   1/1     Running   1          6d22h
Run Code Online (Sandbox Code Playgroud)

但是,当我执行第一步创建服务时

kubectl expose rc kubia --type=LoadBalancer --name kubia-http service "kubia-http" exposed
Run Code Online (Sandbox Code Playgroud)

我收到此错误返回

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
Run Code Online (Sandbox Code Playgroud)

有什么想法为什么我会收到此错误以及我需要做什么来纠正它吗?

我在 mac Mojave (v10.14.6) 上使用 minikube v1.13.1,但无法升级,因为我使用的是公司提供的机器,并且所有更新均由总部控制。

Mar*_* K. 15

在本书中,使用的命令是在编写本书时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
Run Code Online (Sandbox Code Playgroud)

为了创建复制,建议使用Deployment. 要使用 CLI 创建它,您只需运行

kubectl create deployment <name_of_deployment> --image=<image_to_be_used>
Run Code Online (Sandbox Code Playgroud)

它将创建一个部署和一个 Pod。然后就可以像之前的 pod 暴露一样进行暴露:

kubectl expose deployment kubia --type=LoadBalancer --name kubia-http
Run Code Online (Sandbox Code Playgroud)