c7nctl详解

c7nctl是Choerodon的一个命令行工具,可以创建k8s,安装Choerodon平台及其他一些平台操作,下边先简单介绍一下安装的配置,先来个例子

version: 0.15
metadata:
  name: install-choerodon 
  namespace: c7n-system  # 指定命名空间安装choerodon
spec:
  persistence:
    # nfs:
    #  server: cfs-c8AydyqtT6.lb-cd4ce12b.cfs.bj.vinkdong.com
    #  rootPath: /
    hostPath:
     rootPath: /u01
    # storageClassName: nfs-provisioner

在persistence定义了存储的位置,目前支持storageClass,hostPath和nfs三种方式,由于使用nfs搭建gitlab容易出现问题,我们可以为gitlab单独配置一个存储,如下:

version: 0.15
metadata:
  name: install-choerodon 
  namespace: c7n-system  # 指定命名空间安装choerodon
spec:
  persistence:
    nfs:
     server: cfs-c8AydyqtT6.lb-cd4ce12b.cfs.bj.vinkdong.com
     rootPath: /
    # hostPath:
    #  rootPath: /u01
    # storageClassName: nfs-provisioner
  resources:
    gitlab-mysql:
      username: rdsroot
      password: MPu26L7NJqy2ND 
    mysql:
      username: rdsroot
      password: MPu26L7NJqy2ND
    gitlab:
      domain: gitlab.vinkdong.com
      username: root     # gitlab 默认用户名为root,不能修改
      schema: http
      persistence:
        hostPath:
          path: /u02/gitlab

其他应用统一使用nfs,gitlab绑定到主机的/u02/gitlab路径下,当然前提需要在主机上创建这个文件夹,如果测试情况下可以先执行安装,等待gitlab POD启动创建之后修改gitlab固定主机,并在主机上创建相应的文件夹。也可以使用类似于rsync的应用同步该文件夹。 如果需要ceph或者glusterfs的话可以通过storageClass指定对应的存储类,由于这两种储存方式较nfs和主机存储学习和运维成本高,这里就不深入介绍,在没有相关运维人员时,不建议使用这两种存储。

有时候,不想要安装程序安装数据库,想要使用已经搭建好的数据库可以使用下边的配置

version: 0.15
metadata:
  name: install-choerodon 
  namespace: c7n-system  # 指定命名空间安装choerodon
spec:
  persistence:
    # nfs:
    #  server: cfs-c8AydyqtT6.lb-cd4ce12b.cfs.bj.vinkdong.com
    #  rootPath: /
    hostPath:
     rootPath: /u01
    # storageClassName: nfs-provisioner
  resources:
    gitlab-mysql:
      external: true
      host: mysql57.rdsmc8sjf2cap8z.rds.bj.vinkdong.com
      port: 3306
      username: rdsroot
      password: MPu26L7NJqy2ND 
    mysql:
      external: true
      port: 3306
      host: mysql57.rdsmc8sjf2cap8z.rds.bj.vinkdong.com
      username: rdsroot
      password: MPu26L7NJqy2ND
    gitlab:
      domain: gitlab.vinkdong.com
      external: false
      username: root     # gitlab 默认用户名为root,不能修改
      schema: http

上边的external表示使用外部数据库,需要注意配置有root权限的用户名及密码,因为安装程序会自动创建一些数据库,使用外部数据库时,需要配置数据库lower_case_table_names=1,max_allowed_packet大于67108864

配置好之后就可以安装了(上边的配置文件并不完整,完整请参考官网配置)

c7nctl install -c /Users/vink/temp/config.yml --debug --version 0.15 --no-timeout --skip-input

上边的参数--debug输入调试信息,--version指定安装版本,--no-timeout将超时设置为1天,--skip-input跳过输入用户名密码,使用默认密码。

安装的时候会在每个节点启动slaver程序,该程序用来校验集群各项配置信息,如果slaver一直没有启动起来,一般检查下存储配置时候有问题,安装时候会拉取镜像,拉取镜像时间取决于网速,如果出现Waiting xxx running多半是在拉取镜像,可以使用kubectl命令查看下是不是在拉取镜像,如果安装顺利,你可能会拉取大约11GB的镜像。网络良好的情况下安装需要花费大概半小时的时间。祝顺利!

VinkDong

open to open