minikube安装ingress

Posted gsls200808

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了minikube安装ingress相关的知识,希望对你有一定的参考价值。

1.安装ingress

注意minikube版本需要>=1.23,早期版本的docker版ingress运行有bug

执行命令

minikube addons enable ingress

查看所有插件状态

minikube addons list

查看ingress-nginx-controller的pod状态,新版本是查看ingress-nginx命名空间,早期版本是查看kube-system命名空间

kubectl get pods -n ingress-nginx

2.部署demo

2.1创建pod和service

创建文件whoami-service.yaml,内容如下

apiVersion: apps/v1
kind: Deployment
metadata:
  name: whoami-deployment
  labels:
    app: whoami
spec:
  replicas: 3
  selector:
    matchLabels:
      app: whoami
  template:
    metadata:
      labels:
        app: whoami
    spec:
      containers:
        - name: whoami
          image: jwilder/whoami
          ports:
            - containerPort: 8000
---
apiVersion: v1
kind: Service
metadata:
  name: whoami-service
spec:
  type: LoadBalancer
  ports:
    - port: 80
      targetPort: 8000
      nodePort: 30080
  selector:

应用yaml文件

kubectl apply -f whoami-service.yaml

查看deployment,pod,service状态

# 查看 Deployment
kubectl get deployments
# 查看 Pod
kubectl get pods
# 查看 service
kubectl get service
#查看到的service状态时,LoadBalancer类型的EXTERNAL-IP状态为pending不影响运行结果

service状态pending解决

执行命令

minikube tunnel

2.2部署ingress

创建文件whoami-ingress.yaml

内容如下

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: whoami-ingress
spec:
  rules:
  - host: a.example.com
    http:
      paths:
        - path: /
          pathType: Prefix
          backend:
            service:
              name: whoami-service
              port:
                number: 80

这里host指定域名,如果需要通过ip访问host:后不填域名就行。

应用yaml文件

kubectl apply -f whoami-ingress.yaml

查看ingress状态

kubectl get ingress

加hosts,将前面host配置的域名加到系统的/etc/hosts文件

 echo "$(minikube ip) a.example.com" | sudo tee -a /etc/hosts

执行本地访问

curl a.example.com

默认情况会返回deployment名称

运行结果如图

以上是关于minikube安装ingress的主要内容,如果未能解决你的问题,请参考以下文章

在WebSocket握手过程中出错。意外的响应代码。在Minikube的Ingress上出现502

markdown 用于K8s v1.8 +的nginx-ingress-controller RBAC设置(在minikube上测试)

minikube external-ip 始终处于挂起状态,而无法访问 emissary-ingress 负载均衡器

使用 WLS2 在 Docker 桌面上启用 Ingress 控制器

使用 nginx 入口控制器的 minikube Kubernetes 集群上没有入口地址

本地电脑安装minikube