mac上搭建k8s ingress-nginx Kubernetes ingress-nginx controller

kubernetes有多种暴露服务的方式,其中一种方法是ingress-nginx。要使用这种方式暴露K8S服务,需要先安装ingress-nginx-controller。本文主要是介绍mac上搭建k8s ingress-nginx。

官网

https://kubernetes.github.io/ingress-nginx/deploy/#generic-deployment

前提

*安装好docker和k8s (https://www.jianshu.com/p/7c35fefdf1b4)

1. 安装ingress-controller

1.1 先下载相关部署的yaml文件。以下是官方文件

weget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml

1.2 打开刚下载的文件,将镜像改成nginx-ingress-controller:0.19.0

1.3 下载nginx-ingress-controller:0.19.0镜像,无需翻墙,直接

docker pull quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.19.0

1.4 启动ingress-controller

kubectl create -fmandatory.yaml

1.5 验证安装

kubectl get pods --all-namespaces -l app.kubernetes.io/name=ingress-nginx


2.创建ingress-nginx服务

官网YAML文件没有创建ingress-nginx服务,因为每人安装的云和环境均不同,所以这个服务要自己创建

以下是单机版或MAC版的例子

##vim ingress-nginx.yaml

apiVersion: v1

kind: Service

metadata:

  name: ingress-nginx

  namespace: ingress-nginx

  labels:

    app.kubernetes.io/name: ingress-nginx

    app.kubernetes.io/part-of: ingress-nginx

spec:

  type: NodePort

  ports:

    - name: http

      nodePort: 80

      port: 80

      targetPort: 80

      protocol: TCP

    - name: https

      nodePort: 443

      port: 443

      targetPort: 443

      protocol: TCP

  selector:

    app.kubernetes.io/name: ingress-nginx

    app.kubernetes.io/part-of: ingress-nginx

## kubectl create -f ingress-nginx.yaml

至此,ingress-nginx搭建完成。可以开始按官网教程配置自己的ingress规则。https://kubernetes.io/docs/concepts/services-networking/ingress/

总结:

1. Ingress不能访问不同命名空间的后端服务,只能访问自己所在空间的后端服务。

2.安装Ingress-nginx-controller时会默认安装的后端服务,是帮你返回不存在页面时的404。

默认后端服务


mac上搭建k8s ingress-nginx Kubernetes ingress-nginx controller_第1张图片

存在页面时


mac上搭建k8s ingress-nginx Kubernetes ingress-nginx controller_第2张图片

不存在页面时


mac上搭建k8s ingress-nginx Kubernetes ingress-nginx controller_第3张图片

你可能感兴趣的:(mac上搭建k8s ingress-nginx Kubernetes ingress-nginx controller)