kubernetes基础知识之ingress http基础认证代理

B站影视 内地电影 2025-09-06 10:38 1

摘要:nginx可以做访问控制,在访问控制列表里面有一种是基于IP,一种是基于用户。ingress的接口是基于nginx的,可以实现基于用户的访问控制。nginx拥有的特性,ingress中可以继续使用。

nginx可以做访问控制,在访问控制列表里面有一种是基于IP,一种是基于用户。ingress的接口是基于nginx的,可以实现基于用户的访问控制。nginx拥有的特性,ingress中可以继续使用。

http认证文件创建:

1.yum install httpd-tools -y

2.htpasswd -c auth 87long(设置认证用户是87long)

3.kubectl create secret generic ingress-basic-auth --from-file=auth -n ingress-nginx

下面创建ingress的资源清单对象yaml文件:

touch ingress.yaml

vim ingress.yaml:

apiVersion: v1

kind: Deployment

metadata:

spec:

replicas: 2

selector:

matchLabels:

app: auth

template:

metadata:

labels:

app: auth

spec:

containers:

- name: c1

image: nginx

imagePullPolicy: Always

ports:

- containerPort: 80

---

apiVersion: v1

kind: Service

metadata:

name: ingress-httpproxy-auth

namespace: ingress-nginx

labels:

app: auth

spec:

ports:

- port: 80

targetPort: 80

selector:

app: auth

---

apiVersion: networking.k8s.io/v1

kind: Ingress

metadata:

name: ingress-with-auth

annotations:

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

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

nginx.ingress.kubernetes.io/auth-realm: 'Authentications Required - 87long'

spec:

ingressClassName: nginx

rules:

paths:

- pathType: ImplementationSpecific

path: "/"

backend:

service:

name: ingress-httpproxy-auth

number: 80

kubectl create -f ingress.yaml

需要httpd-tools工具去提供一个htpasswd文件,去生成一个认证文件,认证文件名是auth,用户名是87long。

然后创建一个generic类型的secret文件,把auth认证文件封装在secret对象里面,等待着后续去调用。

然后创建ingress资源对象,开启基础认证,并且指定认证的数据文件,基于secret提供。

ingress中的pathtype是定义路径匹配规则的关键字段,用于确定请求路径的匹配方式。在kubernetes中,pathtype有三种类型。

1.Exact精确匹配

仅仅匹配符合路径定义的请求,比如路径定义是/api,那么仅仅处理以/api开头的请求。

2.Prefix前缀匹配

匹配路径前缀,如果路径是/api,则可以处理/api/v1、/api/v2等请求。

3.ImplementationSpecific

匹配的规则由具体的ingress控制器实现,例如nginx、traefik等控制器,需要结合控制器特性。

如果没有指定pathtype,ingress创建会失败。

匹配优先级是:精确匹配Exact高于前缀匹配Prefix,高于控制器特定规则ImplementationSpecific。

ImplementationSpecific代表基于nginx控制器自身规则去处理。

新版的浏览器不会输出提示信息auth-realm的内容。

湖边

鼓励的话语:只有走过最深的谷底,才能见证自己的强大力量!

来源:小胡科技每日一讲

相关推荐