开普勒云平台:如何安装依赖(一)

发布于:2020 年 2 月 6 日 21:34

开普勒云平台:如何安装依赖(一)

Kplcloud 是什么?

kplcloud 是一个基于 Kubernetes 的轻量级 PaaS 平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。

Kplcloud 已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器。

1.jpeg

一、Namespace

建议将与开普勒相关的服务独立到一个专有的 Namespace 下,在 Kubernetes 创建新的空间。您可以执行以下命令创建该空间

$ kubectl create namespace kpaas  

或执行以下命令 :

$ kubectl apply -f install/kubernetes/namespace.yaml  

二、配置持久化存储

2.1 持久化存储的相关配置

这里使用的是 NFS 的方式进行持久化,如果您有自己的持久化方案可以不使用改方案。

$ kubectl apply -f install/kubernetes/storage/serviceaccount.yaml  
$ kubectl apply -f install/kubernetes/storage/rbac.yaml  
$ kubectl apply -f install/kubernetes/storage/provisioner.yaml  
$ kubectl apply -f install/kubernetes/storage/stroageclass.yaml  

2.2 需要调整 provisioner

根据您自己的环境调 service 地址及 path。

volumes:  
- name: kpl-nfs-client-root  
  nfs:  
    server: 172.16.0.4  
    path: "/home/data"  
containers:  
- name: kpl-nfs-client-provisioner  
  image: quay.io/external_storage/nfs-client-provisioner:latest  
  env:  
    - name: PROVISIONER_NAME  
      value: fuseim.pri/ifs  
    - name: NFS_SERVER  
      value: 172.16.0.4  
    - name: NFS_PATH  
      value: "/home/data"  

1.jpeg

2.jpeg

三、安装 Redis 单点

为了方便给大家演示,redis 也使用的 docker 版本部署在 kubernetes 集群上,真实环境请使用独立的 redis 服务器或集群

如果您还没有初始化持久化存储的,请在这里持久化存储配置好存储类再安装 Redis 服务。

3.1 安装

$ kubectl apply -f install/kubernetes/redis/statefulset.yaml  
$ kubectl apply -f install/kubernetes/redis/service.yaml  
$ kubectl apply -f install/kubernetes/redis/configmap.yaml  

redis 的配置相关信息写在 configmap 里面 statefulset.yaml

官方 redis 默认的存在 /data 目录,所以我们需要将持久化存储目标配置在 /data 目录下。

四、安装 Consul 集群

如果您的独立的 Consul 集群或不想使用 Consul 的话,不需要执行以下命令。 以下命令是将 docker 版的 consul 集群安装在您的 kubernetes 集群上前提是前必须有持久化存储。

如果您还没有初始化持久化存储的,请在这里持久化存储配置好存储类再安装 consul 集群。

4.1 安装

$ kubectl apply -f install/kubernetes/consul/configmap.yaml  
$ kubectl apply -f install/kubernetes/consul/service.yaml  
$ kubectl apply -f install/kubernetes/consul/statefulset.yaml  
$ kubectl apply -f install/kubernetes/consul/ingress.yaml  

咱们采用的是 StatefulSet 的方式部署集群,若您已经有了持久化的存储类,将 storageClassName 修改成您的存储类包就好。

3.jpeg

ingress.yaml 提供对外访问的入口

configmap.yaml consul cluster server 的配置文件

4.2 注释

这个 kubernetes 亲和度问题您可能需要关注一下,如果您的 kubernetes 是单点,请使用以下注释掉的代码。否由会无法起动服务。

      affinity:  
        podAntiAffinity:  
          requiredDuringSchedulingIgnoredDuringExecution:  
            - labelSelector:  
                matchLabels:  
                  app: consul  
                  component: server  
              topologyKey: kubernetes.io/hostname  
\#          # 单节点用这个  
\#          preferredDuringSchedulingIgnoredDuringExecution:  
\#            - wight: 100  
\#              podAffinityTerm:  
\#                topologyKey: kubernetes.io/hostname

本文转载自宜信技术学院。

原文链接: http://college.creditease.cn/detail/316

阅读数:151 发布于:2020 年 2 月 6 日 21:34

更多 新基建、文化 & 方法、最佳实践 相关课程,可下载【 极客时间 】App 免费领取 >

评论

发布
暂无评论