openldap docker k8s部署

本文档介绍了如何使用Docker Compose部署OpenLDAP和phpldapadmin,然后详细说明了在Kubernetes(k8s)环境中进行相同部署的步骤,包括创建Deployment和服务,并解决在配置中遇到的问题。

1、docker部署

首先编写docker-compose.yml文件:

version: '2'
services:
  openldap:
    image: osixia/openldap:1.5.0
    container_name: openldap
    restart: always
    environment:
      LDAP_ORGANISATION: "gavin"
      LDAP_DOMAIN: "auth.gavin.cn"
      LDAP_BASE_DN: "dc=auth,dc=gavin,dc=cn"
      LDAP_ADMIN_PASSWORD: "123456"
      LDAP_CONFIG_PASSWORD: "123456"
    # volumes:
    #   - /opt/openldap/ldap:/var/lib/ldap
    #   - /opt/openldap/slapd.d:/etc/ldap/slapd.d
    ports:
      - "389:389"
      - "636:636"
  phpldapadmin:
    image: osixia/phpldapadmin:latest
    container_name: phpldapadmin
    restart: always
    environment:
      PHPLDAPADMIN_LDAP_HOSTS: "openldap"
      PHPLDAPADMIN_HTTPS: "false"
    ports:
      - "50081:80"
    depends_on:
      - openldap

然后通过docker-compose up启动成功。http://localhost:50081/.

用户名为cn=admin,dc=auth,dc=gavin,dc=cn, 密码为123456

2、k8s部署,

首先通过docker命令把镜像推送到harbor

编写openldap.yml,

---
apiVersion: apps/v1
kind: Deployment
metadata:
  annotations: {}
  labels:
    k8s.kuboard.cn/layer: db
    k8s.kuboard.cn/name: openldap
  name: openldap
  namespace: base-component
  resourceVersion: '43043689'
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:

### 在 Kubernetes部署和配置 OpenLDAP 服务 在 Kubernetes (k8s) 中部署和配置 OpenLDAP 服务可以通过创建相关的 YAML 文件来实现,这些文件包括 Deployment、Service 和 ConfigMap。以下是具体的操作步骤和代码示例: #### 1. 创建 OpenLDAP 的 ConfigMap ConfigMap 用于存储 OpenLDAP 的配置文件内容。以下是一个示例 ConfigMap 定义: ```yaml apiVersion: v1 kind: ConfigMap metadata: name: openldap-config namespace: openldap data: slapd.conf: | include /etc/openldap/schema/core.schema include /etc/openldap/schema/cosine.schema include /etc/openldap/schema/nis.schema include /etc/openldap/schema/inetorgperson.schema allow bind_v2 pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args database bdb suffix "dc=example,dc=com" rootdn "cn=admin,dc=example,dc=com" rootpw secret directory /var/lib/ldap index objectClass eq ``` 此 ConfigMap 包含了 OpenLDAP 的核心配置文件 `slapd.conf`[^3]。 #### 2. 部署 OpenLDAP 的 Deployment 以下是一个 OpenLDAP Deployment 的示例: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: openldap namespace: openldap spec: replicas: 1 selector: matchLabels: app: openldap template: metadata: labels: app: openldap spec: containers: - name: openldap image: osixia/openldap:1.4.0 ports: - containerPort: 389 - containerPort: 636 env: - name: LDAP_ORGANISATION value: "Example Inc." - name: LDAP_DOMAIN value: "example.com" - name: LDAP_ADMIN_PASSWORD value: "secret" volumeMounts: - name: config-volume mountPath: /opt/bitnami/openldap/etc/openldap/slapd.d volumes: - name: config-volume configMap: name: openldap-config ``` 在此 Deployment 中,使用了 `osixia/openldap` 镜像,并通过环境变量设置了 LDAP 域名、组织名称和管理员密码。 #### 3. 创建 OpenLDAP 的 Service 为了使 OpenLDAP 可以被其他服务访问,需要创建一个 Service: ```yaml apiVersion: v1 kind: Service metadata: name: openldap namespace: openldap spec: type: NodePort ports: - port: 389 targetPort: 389 nodePort: 31183 protocol: TCP name: ldap - port: 636 targetPort: 636 nodePort: 31009 protocol: TCP name: ldaps selector: app: openldap ``` 此 Service 将 OpenLDAP 的端口映射到集群外部,便于访问。 #### 4. 验证 OpenLDAP 服务是否正常启动 执行以下命令检查 Pod 和 Service 是否正常运行: ```bash kubectl get pod,svc -n openldap ``` 如果所有 Pod 状态为 `Running`,并且 Service 正常显示,则说明 OpenLDAP 服务已成功部署[^3]。 --- ### 注意事项 - 如果需要更复杂的配置,可以参考官方文档或社区提供的最佳实践。 - 确保 Kubernetes 集群中的网络插件已正确安装并运行,以便 Pod 之间能够相互通信[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值