前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Kubernetes上使用Openldap做集中认证

在Kubernetes上使用Openldap做集中认证

作者头像
公众号: 云原生生态圈
发布2020-06-15 14:34:09
1.6K0
发布2020-06-15 14:34:09
举报
文章被收录于专栏:云原生生态圈云原生生态圈

LDAP是Lightweight Directory Access Protocol的缩写,提供LDAP服务的软件有很多商业上获得成功的,其中以MS的AD和Redhat的NDS(Netscape directory server)使用最为广泛,而开源领域则是OpenLdap了,为了集成认证后面需要的gitlab,jenkins,nexus,harbor等,因此我们在准备在kubernetes上部署一下openldap和openldap的界面管理工具phpldapadmin.

我们把openldap和phpldapadmin放置在一个Pod内运行,组合成一个容器组 openldap-phpldapadmin-deployment.yml

代码语言:javascript
复制
apiVersion: apps/v1
kind: Deployment
metadata:
  name: openldap
  namespace: kube-ops # 这里是归档的Namespace
spec:
  selector:
    matchLabels:
      app: openldap
  template:
    metadata:
      labels:
        app: openldap
    spec:
      containers:
        - name: openldap # 使用stale版本的openldap镜像
          image: osixia/openldap:stable
          resources:
            limits:
              memory: "128Mi"
              cpu: "256m"
          ports:
            - containerPort: 389 # openldap用于tcp/udp传输的端口
              name: ldaptcpudp
            - containerPort: 636 # openldap over ssl
              name: ldaps
        - name: phpldapadmin
          image: osixia/phpldapadmin:0.7.2
          resources:
            limits:
              memory: "256Mi"
              cpu: "256m"
          ports:
            - containerPort: 80
              name: ldapadminweb
          env:
            - name: PHPLDAPADMIN_HTTPS
              value: "false"
            - name: PHPLDAPADMIN_LDAP_HOSTS
              value: "localhost" # 因为和openldap属于在一个容器组内,所以使用localhost

我们需要在外部访问phpldapadmin,因此创建一个service和ingress route

代码语言:javascript
复制
apiVersion: v1
kind: Service
metadata:
  name: openldap
  namespace: kube-ops
spec:
  selector:
    app: openldap
  ports:
    - port: 80
      targetPort: ldapadminweb

---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: openldap-ingressroute
  namespace: kube-ops
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`phpldapadmin.kubemaster.top.com`)
      kind: Rule
      services:
        - name: openldap
          port: 80

这样,基本上完成了openldap服务的配置清单的准备,下一步开始部署到集群中

代码语言:javascript
复制
kubectl apply -f .

我们可以通过日志查看pod是否运行正常:

代码语言:javascript
复制
☸️  devcluster? kube-ops  ~  ? ? kubectl get pods |grep openldap
openldap-6f6647d46b-wqk2n   2/2     Running     0          21m
# 通过-c选项查看指定容器的日志
☸️  devcluster? kube-ops  ~  ? ? k logs -f openldap-6f6647d46b-wqk2n -c phpldapadmin

我们通过域名访问一下,使用 cn=admin,dc=example,dc=org和密码 admin进行登录

然后我们也可以在集群的控制面板上查看一下openldap和Phpldapadmin的状态。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档