Kplcloud 是什么?
kplcloud 是一个基于 Kubernetes 的轻量级 PaaS 平台,通过可视化的界面对应用进行管理,降低应用容器化的对度,从而减少应用容器化的时间成本。
Kplcloud 已在宜信服务于宜人财富等多个团队,稳定运行了近两年,目前平台已在生产环境跑着上百个应用,近千个容器。
1572489170224085583.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"
复制代码
1572488890057084480.jpeg
1572488901077005750.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 修改成您的存储类包就好。
1572488927739054377.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
评论