gpt4 book ai didi

使用 Traefik 进行 Kubernetes 基本身份验证

转载 作者:行者123 更新时间:2023-12-04 16:24:00 24 4
gpt4 key购买 nike

我正在尝试使用 Traefik 作为入口 Controller 在 Nginx 示例上配置基本身份验证。

我只是创造了 secret "mypasswd"关于 Kubernetes 的 secret 。

这是我正在使用的入口:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginxingress
annotations:
ingress.kubernetes.io/auth-type: basic
ingress.kubernetes.io/auth-realm: traefik
ingress.kubernetes.io/auth-secret: mypasswd
spec:
rules:
- host: nginx.mycompany.com
http:
paths:
- path: /
backend:
serviceName: nginxservice
servicePort: 80

我检查了 Traefik 仪表板,它出现了,如果我访问 nginx.mycompany.com 我可以检查 Nginx 网页,但没有基本的身份验证。

这是我的 nginx 部署:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.7.9
ports:
- containerPort: 80

Nginx 服务:
apiVersion: v1
kind: Service
metadata:
labels:
name: nginxservice
name: nginxservice
spec:
ports:
# The port that this service should serve on.
- port: 80
# Label keys and values that must match in order to receive traffic for this service.
selector:
app: nginx
type: ClusterIP

最佳答案

使用基本身份验证很流行。引用 Kubernetes documentation ,您应该能够使用以下步骤保护对 Traefik 的访问:

  • 使用 htpasswd 创建身份验证文件工具。您将被要求输入用户的密码:

  • htpasswd -c ./auth


  • 现在使用 kubectl使用 htpasswd 创建的文件在监控命名空间中创建一个 secret .

  • kubectl create secret generic mysecret --from-file auth --namespace=monitoring


  • 通过将注释附加到 Ingress 对象来启用基本身份验证:

  • ingress.kubernetes.io/auth-type: "basic"

    ingress.kubernetes.io/auth-secret: "mysecret"



    因此,基本身份验证的完整示例配置如下所示:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
    name: prometheus-dashboard
    namespace: monitoring
    annotations:
    kubernetes.io/ingress.class: traefik
    ingress.kubernetes.io/auth-type: "basic"
    ingress.kubernetes.io/auth-secret: "mysecret"
    spec:
    rules:
    - host: dashboard.prometheus.example.com
    http:
    paths:
    - backend:
    serviceName: prometheus
    servicePort: 9090
  • 您可以应用以下示例:

  • kubectl create -f prometheus-ingress.yaml -n monitoring



    这应该没有任何问题。

    关于使用 Traefik 进行 Kubernetes 基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50130797/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com