部署 Operator
> 文档中心 > 文档中心 > INFINI Easysearch > 入门指南 > 安装指南 > Operator > 部署 Operator

部署 Easysearch Operator #

Easysearch Operator 只能在 k8s 环境下部署安装,请准备好一套 k8s 环境

部署前准备 #

  • k8s 环境
    要求Kubernetes 1.9以上版本,自 1.9 版本以后,StatefulSet成为了在Kubernetes中管理有状态应用的标准方式。
  • StorageClass
    StorageClass 允许集群管理员定义多种存储方案,如快速的 SSD、标准的硬盘,或者其他的存储系统。无需手动预先创建存储资源,用户只需要在 PersistentVolumeClaim (PVC) 中指定需要的 StorageClass,存储资源就可以根据需求动态地创建。
  • ServiceAccount
    创建一个 ServiceAccount 用于 Easysearch Operator 获取和操作 k8s 资源
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    labels:
    app.kubernetes.io/name: serviceaccount
    app.kubernetes.io/instance: controller-manager-sa
    app.kubernetes.io/component: rbac
    app.kubernetes.io/created-by: k8s-operator
    app.kubernetes.io/part-of: k8s-operator
    app.kubernetes.io/managed-by: kustomize
    name: controller-manager # ServiceAccount 的名字是 controller-manager
    namespace: default
    
  • ClusterRole
    创建 ClusterRole,用于定义访问 k8s 集群的角色权限
  • cert-manager
    部署 cert-manager 来管理 Easysearch 整个集群的证书

至此,准备工作完毕,以上的流程都是一劳永逸的,在第一次部署 Operator 的时候才需要,后续不再需要重新部署。

部署 Easysearch Operator #

下载镜像 #

Easysearch Operator 的镜像发布在 Docker 的官方仓库,地址如下:

https://hub.docker.com/r/infinilabs/operator

使用下面的命令即可获取最新的容器镜像:

docker pull dockerproxy.com/infinilabs/operator:latest

验证镜像 #

将镜像下载到本地之后,可以看到 Easysearch Operator 容器镜像非常小,只有大概 60MB,所以下载的速度应该是非常快的。

➜ docker images
REPOSITORY             TAG      IMAGE ID       CREATED         SIZE
infinilabs/operator   latest   5da94b93e7eb   8 minutes ago   61.2MB

部署 Operator #

在已有的 k8s 环境中部署 Operator,Operator 采用 deployment 方式部署,编辑对应的 yaml 文件,并 apply 即可。

kind: Deployment
apiVersion: apps/v1
metadata:
  name: k8s-operator
  namespace: default
  labels:
    app: k8s-operator
spec:
  replicas: 1
  selector:
    matchLabels:
      app: k8s-operator
  template:
    metadata:
      labels:
        app: k8s-operator
    spec:
      containers:
        - name: k8s-operator
          image: 'dockerproxy.com/infinilabs/operator:latest'
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      serviceAccount: controller-manager # 指定账号

查看部署情况 #

ik get deployment

NAME           READY   UP-TO-DATE   AVAILABLE   AGE
k8s-operator   1/1     1            1           2m6s

至此,Easysearch Operator 已经部署完成。