第十章 Ingress

一、资料信息

Ingress-Nginx github 地址:https://github.com/kubernetes/ingress-nginx

Ingress-Nginx 官方网站:https://kubernetes.github.io/ingress-nginx/

进入官方下载

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

 

二、部署 Ingress-Nginx

kubectl apply -f mandatory.yaml

kubectl apply -f service-nodeport.yaml

Ingress HTTP 代理访问

deploymentServiceIngress Yaml 文件

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

name: nginx-dm

spec:

  replicas: 2

template:

 metadata:

labels:

 name: nginx

 spec:

 containers:

 - name: nginx

 image: wangyanglinux/myapp:v1

 imagePullPolicy: IfNotPresent

 ports:

 - containerPort: 80

apiVersion: v1

kind: Service

metadata:

 name: nginx-svc

spec:

 ports:

 - port: 80

 targetPort: 80

 protocol: TCP

 selector:

 name: nginx

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

   name: nginx-test

spec:

 rules:

- host: www1.atguigu.com

 http:

paths:

 - path: /

backend:

 serviceName: nginx-svc

 servicePort: 80

三、Ingress HTTPS 代理访问

创建证书,以及 cert 存储方式

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj"/CN=nginxsvc/O=nginxsvc"

kubectl create secret tls tls-secret --key tls.key --cert tls.crt

deploymentServiceIngress Yaml 文件

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

 name: nginx-test

spec:

 tls:

- hosts:

 - foo.bar.com

 secretName: tls-secret

 rules:

- host: foo.bar.com

 http:

paths:

- path: /

backend:

serviceName: nginx-svc

servicePort: 80

四、Nginx 进行 BasicAuth

yum -y install httpd

htpasswd -c auth foo

kubectl create secret generic basic-auth --from-file=auth

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

  name:ingress-with-auth

 annotations:

 nginx.ingress.kubernetes.io/auth-type: basic

 nginx.ingress.kubernetes.io/auth-secret: basic-auth

 nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - foo'

spec:

 rules:

 - host: foo2.bar.com

 http:

 paths:

 - path: /

backend:

serviceName: nginx-svc

 servicePort: 80

五、Nginx 进行重写

 

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

  name: nginx-test

  annotations:

  nginx.ingress.kubernetes.io/rewrite-target: http://foo.bar.com:31795/hostname.html

spec:

rules:

- host: foo10.bar.com

   http:

     paths:

     - path: /

backend:

serviceName: nginx-svc

    servicePort: 80

链接:https://www.bilibili.com/video/av66617940/?p=35

猜你喜欢

转载自www.cnblogs.com/LiuQizhong/p/11579924.html