1. 说明

此项目使用 ldapaccountmanager 作为 LDAP 管理器。此项目依赖镜像 docker.io/ldapaccountmanager/lam:8.1

2. 创建 Deployment

使用以下配置创建关联的 Deployment

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy-lam
  namespace: core-system
  labels:
    app: lam
spec:
  replicas: 1
  selector:
    matchLabels:
      app: lam
  template:
    metadata:
      labels:
        app: lam
    spec:
      containers:
        - name: lam
          image: docker.io/ldapaccountmanager/lam:8.1
          ports:
            - containerPort: 80
          env:
            - name: LDAP_USER
              valueFrom:
                secretKeyRef:
                  key: LDAP_ADMIN_DN
                  name: secret-ldap-admin
            - name: LAM_SKIP_PRCONFIGURE
              value: "true"
            - name: LDAP_DOMAIN
              valueFrom:
                configMapKeyRef:
                  name: conf-ldap
                  key: LDAP_DOMAIN
            - name: LDAP_SERVER
              valueFrom:
                configMapKeyRef:
                  name: conf-ldap
                  key: LDAP_URL
            - name: LDAP_BASE_DN
              valueFrom:
                configMapKeyRef:
                  name: conf-ldap
                  key: LDAP_BASE_DN
            - name: LDAP_USERS_DN
              valueFrom:
                configMapKeyRef:
                  name: conf-ldap
                  key: LDAP_USERS_DN
            - name: LDAP_GROUPS_DN
              valueFrom:
                configMapKeyRef:
                  name: conf-ldap
                  key: LDAP_GROUPS_DN
            - name: LAM_LANG
              value: zh_CN
            - name: LAM_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: secret-ldap-admin
                  key: LDAP_ADMIN_PASSWORD

创建完成后使用 kubectl get pods -n core-system 查看创建结果。

2.1. 创建 Service

使用以下配置创建 Service ,关联之前创建的 Deployment。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
apiVersion: v1
kind: Service
metadata:
  labels:
    app: lam
  name: svc-lam
  namespace: core-system
spec:
  ports:
    - port: 80
      name: web
  selector:
    app: lam

创建完成后使用 kubectl get svc -n core-system 查看创建结果。

2.2. 绑定 Ingress

导入此配置,绑定 Ingress, 将 LAM 映射到外部地址。注意:里面标注的内容请按照实际情况修改。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-lam
  namespace: core-system
  labels:
    app: lam
  annotations:
    # 重写路径
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx-private
  tls:
    - hosts:
        - ldap.internal.d7z.net (1)
      secretName: tls-pri-d7z  (2)
  rules:
    - host: ldap.internal.d7z.net  (3)
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: svc-lam  (4)
                port:
                  name: web
  1. 其中

    1 指定 Ingress 暴露的 Host,请将其替换成你的地址
    2 指定 Ingress 使用的 TLS 证书 secret 名称,请将其替换成你的证书
    3 指定 Ingress 使用的 Host
    4 指定 Ingress 绑定的 Service

3. 验证

访问地址 https://ldap.internal.d7z.net , 使用 LDAP 配置的管理员密码登陆,如果登陆成功则表明部署正确, 你配置的密码为 admin

在测试时,你需要将 lam.ldap.internal.d7z.net 改为实际的地址