Minikube入口没有响应



我无法使用Minikube在本地机器上运行Minikube-Nginx-Ingress。它只是超时。我遵循了这个教程和这个教程。

Minikube版本:

v1.8.1 (commit cbda04cf6bbe65e987ae52bb393c10099ab62014)

集群信息:

// Client Version: 
{
Major: "1",
Minor: "17",
GitVersion: "v1.17.1",
GitCommit: "d224476cd0730baca2b6e357d144171ed74192d6",
GitTreeState: "clean",
BuildDate: "2020-01-14T21:04:32Z",
GoVersion: "go1.13.5",
Compiler: "gc",
Platform: "windows/amd64"
}
// Server Version: version.Info
{
Major: "1",
Minor: "17",
GitVersion: "v1.17.3",
GitCommit: "06ad960bfd03b39c8310aaf92d1e7c12ce618213",
GitTreeState: "clean",
BuildDate: "2020-02-11T18:07:13Z",
GoVersion: "go1.13.6",
Compiler: "gc",
Platform: "linux/amd64"
}

我的本地环境肯定有问题,但我不知道如何调试它。这就是我目前的环境:

apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-first
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 8080
name: http
selector:
app: hello-kubernetes-first
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-kubernetes-first
spec:
replicas: 3
selector:
matchLabels:
app: hello-kubernetes-first
template:
metadata:
labels:
app: hello-kubernetes-first
spec:
containers:
- name: hello-kubernetes
image: paulbouwer/hello-kubernetes:1.5
ports:
- containerPort: 8080
env:
- name: MESSAGE
value: Hello from the first deployment!
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: hello-kubernetes-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: hw1.com
http:
paths:
- backend:
serviceName: hello-kubernetes-first
servicePort: 80

系统吊舱

~Desktopkubernetes> kubectl get pods -n kube-system                                                                                                                                                              NAME                                        READY   STATUS    RESTARTS   AGE
coredns-6955765f44-8zxgw                    1/1     Running   6          12d
coredns-6955765f44-jr9xq                    1/1     Running   7          12d
etcd-m01                                    1/1     Running   1          3h48m
kube-apiserver-m01                          1/1     Running   1          3h48m
kube-controller-manager-m01                 1/1     Running   597        12d
kube-proxy-mnhcl                            1/1     Running   7          12d
kube-scheduler-m01                          1/1     Running   596        12d
nginx-ingress-controller-6fc5bcc8c9-z7m2b   1/1     Running   6          27h
storage-provisioner                         1/1     Running   11         12d

C: \Windows\System32\drivers\etc\hosts

172.17.186.182 hw1.com

minikube IP

~Desktopkubernetes> minikube IP
172.17.186.182

您在服务定义中使用ClusterIP,从输出的外观来看,您正在Windows上运行minikube。

从您的Windows CMD,您将无法访问ClusterIP,因为它在VM(虚拟机(中运行。您可以通过运行来确认这一点

minikube ssh

然后在VM中:

curl 172.17.186.182

您可以尝试在虚拟机上使用NodePort公开您的服务。这将是一个从VM外部可用的端口,但它不会是80,因为Kubernetes分配了30000-32767的可配置范围。如果愿意的话,可以在kube-apiserver中使用--service-node-port-range portRange选项手动更改。

apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-first
spec:
type: NodePort
ports:
- port: 80
targetPort: 8080
name: http
selector:
app: hello-kubernetes-first

从Windows CMD获取NodePort(示例(:

kubectl get svc
NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
hello-kubernetes-first   NodePort    10.102.234.222   <none>        80:31181/TCP   3m51s
kubernetes               ClusterIP   10.96.0.1        <none>        443/TCP        138d

上面的NodePort是31181

接下来,您必须在VM中使用eth0的IP:

minikube ssh
$ ifconfig eth0

然后回到您的Windows CMD:

curl <ip-from-eth0-above>:31181

检查入口插件是否已启用:

minikube addons list

如果没有,启用它:

minikube addons enable ingress

最新更新