簡體   English   中英

Kubernetes-Minikube的入口

[英]Kubernetes - Ingress with Minikube

我通過玩minikube學習kubernetes。

這是我的pod部署文件,很好。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      component: web
  template:
    metadata:
      labels:
        component: web
    spec:
      containers:
        - name: myapp
          image: myid/myimage

我正在使用NodePort公開上述容器。 我可以在端口30002上使用minikube IP進行訪問。

apiVersion: v1
kind: Service
metadata:
  name: my-ip-service
spec:
  type: NodePort
  externalIPs:
  - 192.168.99.100
  selector:
    component: web
  ports:
    - port: 3000
      nodePort: 30002
      targetPort: 8080

現在,我想使用入口在端口80上訪問應用程序,它將在3000端口轉發請求ip服務。它不起作用

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: my-ip-service
    servicePort: 3000

如果我嘗試訪問入口,則地址為空。

NAME           HOSTS   ADDRESS   PORTS   AGE
test-ingress   *                 80      41m

如何在minikube中使用ingress? 或如何將minikube ip與入口服務綁定-這樣應用程序可以暴露在外部而無需使用nodeport

您可以使用以下命令獲取minikube節點的IP地址:

minikube ip

入口的IP地址不會在minikube中填充,因為minikube沒有負載均衡器。 如果您想要的行為類似於您的minikube集群的負載均衡器,請https://github.com/knative/serving/blob/master/docs/creating-a-kubernetes-cluster.md#loadbalancer-support-in -minikube建議運行以下命令來修補集群:

sudo ip route add $(cat ~/.minikube/profiles/minikube/config.json | jq -r ".KubernetesConfig.ServiceCIDR") via $(minikube ip)
kubectl run minikube-lb-patch --replicas=1 --image=elsonrodriguez/minikube-lb-patch:0.1 --namespace=kube-system

我認為您在minikube本身上缺少入口控制器資源。 在K8s上創建入口控制器資源的方法有很多種,但我認為對minikube最好的開始方法是遵循文檔。

一旦完成這項工作,就不要忘記閱讀有關Ingress的一般文章。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM