通过kubernetes13.1安装openldap还有phpldapadmin

1、使用rbd作为存储,创建认证以及pv、创建namespace为: public-service

cat ldap-secret.yaml

apiVersion: "v1"

kind: "Secret"

metadata:

  namespace: public-service

  name: "ldap-secret"

type: "kubernetes.io/rbd"

data:

  key: QVFBbU9ZSmNUSWQ3TlJBQVhKeWh3c2ZtQkhzQzZ2VGJ4UVZvVWc9PQ==

cat rbd-pv.yaml

apiVersion: v1

kind: PersistentVolume

metadata:

  name: openldap-data-pv

  namespace: public-service

spec:

  capacity:

    storage: 20Gi

  accessModes:

    - ReadWriteMany

  storageClassName: openldap-data-pv

  rbd:

    monitors:

      - '10.75.32.226:6789'

      - '10.75.32.230:6789'

      - '10.75.32.231:6789'

    pool: rbd-k8s

    image: cephldap

    user: admin

    secretRef:

      name: ldap-secret

    fsType: ext4

    readOnly: false

  persistentVolumeReclaimPolicy: Recycle

从github取得openldap的yaml文件。

git clone https://github.com/atjapan2015/kuberneteshandson.git

1、各文件添加修改自己的DN,我的为dashboard.com

启动deployment和service。

[root@k8s-master openldap]# cat ldap-deployment.yaml

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

  name: ldap

  namespace: public-service

  labels:

    app: ldap

spec:

  replicas: 1

  template:

    metadata:

      labels:

        app: ldap

    spec:

      containers:

        - name: ldap

          image: osixia/openldap:1.2.1

          volumeMounts:

            - name: openldap-data

              mountPath: /var/lib/ldap

              subPath: ldap-data

            - name: openldap-data

              mountPath: /etc/ldap/slapd.d

              subPath: ldap-config

            - name: openldap-data

              mountPath: /container/service/slapd/assets/certs

              subPath: ldap-certs

          ports:

            - containerPort: 389

              name: openldap

            - name: ssl-ldap-port

              containerPort: 636

          livenessProbe:

            tcpSocket:

              port: openldap

            initialDelaySeconds: 20

            periodSeconds: 10

            failureThreshold: 10

          readinessProbe:

            tcpSocket:

              port: openldap

            initialDelaySeconds: 20

            periodSeconds: 10

            failureThreshold: 10

          env:

            - name: LDAP_LOG_LEVEL

              value: "256"

            - name: LDAP_ORGANISATION

              value: "Dashboard Inc."

            - name: LDAP_DOMAIN

              value: "dashboard.com"

            - name: LDAP_ADMIN_PASSWORD

              value: "admin"

            - name: LDAP_CONFIG_PASSWORD

              value: "config"

            - name: LDAP_READONLY_USER

              value: "false"

            - name: LDAP_READONLY_USER_USERNAME

              value: "readonly"

            - name: LDAP_READONLY_USER_PASSWORD

              value: "readonly"

            - name: LDAP_RFC2307BIS_SCHEMA

              value: "false"

            - name: LDAP_BACKEND

              value: "mdb"

            - name: LDAP_TLS

              value: "true"

            - name: LDAP_TLS_CRT_FILENAME

              value: "ldap.crt"

            - name: LDAP_TLS_KEY_FILENAME

              value: "ldap.key"

            - name: LDAP_TLS_CA_CRT_FILENAME

              value: "ca.crt"

            - name: LDAP_TLS_ENFORCE

              value: "false"

            - name: LDAP_TLS_CIPHER_SUITE

              value: "SECURE256:+SECURE128:-VERS-TLS-ALL:+VERS-TLS1.2:-RSA:-DHE-DSS:-CAMELLIA-128-CBC:-CAMELLIA-256-CBC"

            - name: LDAP_TLS_VERIFY_CLIENT

              value: "demand"

            - name: LDAP_REPLICATION

              value: "false"

            - name: LDAP_REPLICATION_CONFIG_SYNCPROV

              value: "binddn=\"cn=admin,cn=config\" bindmethod=simple credentials=$LDAP_CONFIG_PASSWORD searchbase=\"cn=config\" type=refreshAndPersist retry=\"60 +\" timeout=1 starttls=critical"

            - name: LDAP_REPLICATION_DB_SYNCPROV

              value: "binddn=\"cn=admin,$LDAP_BASE_DN\" bindmethod=simple credentials=$LDAP_ADMIN_PASSWORD searchbase=\"$LDAP_BASE_DN\" type=refreshAndPersist interval=00:00:00:10 retry=\"60 +\" timeout=1 starttls=critical"

            - name: LDAP_REPLICATION_HOSTS

              value: "#PYTHON2BASH:['ldap://ldap-one-service', 'ldap://ldap-two-service']"

            - name: KEEP_EXISTING_CONFIG

              value: "false"

            - name: LDAP_REMOVE_CONFIG_AFTER_SETUP

              value: "true"

            - name: LDAP_SSL_HELPER_PREFIX

              value: "ldap"

      volumes:

        - name: openldap-data

          persistentVolumeClaim:

            claimName: openldap-data

---

kind: PersistentVolumeClaim

apiVersion: v1

metadata:

  namespace: public-service

  name: openldap-data

spec:

  accessModes: [ "ReadWriteMany" ]

  storageClassName: "openldap-data-pv"

  resources:

    requests:

      storage: 1Gi

[root@k8s-master openldap]# cat ldap-service.yaml

apiVersion: v1

kind: Service

metadata:

  namespace: public-service

  labels:

    app: ldap

  name: ldap-service

spec:

  ports:

    - name: openldap

      port: 389

      protocol: TCP

      targetPort: openldap

    - name: ssl-ldap-port

      protocol: TCP

      port: 636

      targetPort: ssl-ldap-port

  selector:

    app: ldap

    [root@k8s-master openldap]# cat phpldapadmin-deployment.yaml

apiVersion: extensions/v1beta1

kind: Deployment

metadata:

  namespace: public-service

  annotations:

    kompose.cmd: kompose convert -f docker-compose.yml

    kompose.version: 1.16.0 (0c01309)

  creationTimestamp: null

  labels:

    io.kompose.service: phpldapadmin

  name: phpldapadmin

spec:

  replicas: 1

  strategy: {}

  template:

    metadata:

      creationTimestamp: null

      labels:

        io.kompose.service: phpldapadmin

    spec:

      containers:

      - env:

        - name: PHPLDAPADMIN_HTTPS

          value: "false"

        - name: PHPLDAPADMIN_LDAP_HOSTS

          value: ldap-service

        image: osixia/phpldapadmin:0.7.1

        name: phpldapadmin

        ports:

        - containerPort: 80

        resources: {}

      restartPolicy: Always

status: {}

cat phpldapadmin-service.yaml

apiVersion: v1

kind: Service

metadata:

  namespace: public-service

  annotations:

    kompose.cmd: kompose convert -f docker-compose.yml

    kompose.version: 1.16.0 (0c01309)

  creationTimestamp: null

  labels:

    io.kompose.service: phpldapadmin

  name: phpldapadmin

spec:

  ports:

  - name: "8080"

    port: 8080

    targetPort: 80

  selector:

    io.kompose.service: phpldapadmin

status:

  loadBalancer: {}

2、创建ldap-ui-ingress

apiVersion: extensions/v1beta1

kind: Ingress

metadata:

  name: ldap-ui

  namespace: public-service

  annotations:

    nginx.ingress.kubernetes.io/ssl-redirect: "true"

    kubernetes.io/tls-acme: "true"

    # "413 Request Entity Too Large" uploading plugins, increase client_max_body_size

    nginx.ingress.kubernetes.io/proxy-body-size: 50m

    nginx.ingress.kubernetes.io/proxy-request-buffering: "off"

    # For nginx-ingress controller < 0.9.0.beta-18

    ingress.kubernetes.io/ssl-redirect: "true"

    # "413 Request Entity Too Large" uploading plugins, increase client_max_body_size

    ingress.kubernetes.io/proxy-body-size: 50m

    ingress.kubernetes.io/proxy-request-buffering: "off"

spec:

  rules:

  - http:

      paths:

      - path: /

        backend:

          serviceName: phpldapadmin

          servicePort: 8080

    host: ldap.dashboard.com

  tls:

  - hosts:

    - ldap.dashboard.com

    secretName: ingress-secret

查看service,deploy和pod的启动情况。

root@k8s-master openldap]# kubectl get po,svc,pvc,Ingress -n public-service | grep ldap

pod/ldap-6fcc976d77-j4mwf          1/1    Running  0          28s

pod/phpldapadmin-67bcfb5647-m9pzc  1/1    Running  0          27s

service/ldap-service  ClusterIP  10.254.154.105  <none>        389/TCP    27s

service/phpldapadmin  ClusterIP  10.254.153.207  <none>        8080/TCP  27s

persistentvolumeclaim/openldap-data  Bound    openldap-data-pv  20Gi      RWX            openldap-data-pv  28s

ingress.extensions/ldap-ui  ldap.dashboard.com            80, 443  27s


使用浏览器访问phpldapadmin。地址为。ldap.dashboard.com 



©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容