我正在通过玩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
答案 0 :(得分:1)
您可以通过以下方式获取minikube节点的IP地址:
minikube ip
在minikube中不会填充入口的IP地址,因为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
答案 1 :(得分:1)