安装Spinnaker

安装spinnaker

spinnaker组件

Deck:前端web页面 端口9000
Gate:API网关,所有程序通过gate与spinnaker通信。 端口8084
Orca:编排引擎,定义管道或任务,并管理阶段和任务,协调其他Spinnaker服务。 端口8083
Clouddriver: 云厂商适配器,负责对云厂商的变更资源调用。 端口7002
Front50:用于保存应用程序、管道、项目和通知的元数据。 端口8080
Rosco:为各种运供应商生成不可变的VM镜像。 端口 8087
Igor: 持续集成系统集成,触发管道。端口 8088
Echo:消息通知,负责发送通知。端口 8089
Fiat: 认证授权服务。端口 7003
Kayenta:自动化的金丝雀分析。端口 8090
Halyard: Spinnaker生命周期配置管理工具。端口 8064

安装minio

  • 创建nfs pv
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    kind: PersistentVolume
    apiVersion: v1
    metadata:
    name: ci-minio-pv
    namespace: ops
    spec:
    accessModes:
    - ReadWriteOnce
    capacity:
    storage: 50Gi
    persistentVolumeReclaimPolicy: Retain
    storageClassName: nfs-storage
    nfs:
    path: /data/nfs/minio
    server: 172.16.19.xx

  • helm安装minio
    1
    2
    3
    helm repo add stable https://charts.helm.sh/stable
    helm search repo stable/minio
    helm fetch stable/minio --version 5.0.33
  • 替换values.yaml:
    • pv
    • ingress
  • install minio
    1
    helm install minio -n spinnaker ./minio

安装halyard

  • 参考: https://spinnaker.io/setup/install/halyard/#install-on-debianubuntu-and-macos
  • 运行halyard
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    docker run -p 8084:8084 -p 9000:9000 \
    --name halyard --rm \
    -v ~/.hal:/home/spinnaker/.hal \
    -v ~/.kube:/home/spinnaker/.kube \
    -it us-docker.pkg.dev/spinnaker-community/docker/halyard:stable

    # root执行
    docker run \
    --name halyard --rm \
    -u root \
    -v ~/.hal:/root/.hal \
    -v ~/.kube:/root/.kube \
    -it us-docker.pkg.dev/spinnaker-community/docker/halyard:stable

配置、安装spinnaer

配置

  • 进入halyard容器进行配置部署

    1
    docker exec -it halyard sh
  • 设置版本

    1
    hal config version edit --version 1.19.4
  • 设置存储

    1
    2
    3
    4
    5
    6
    7
    8
    9
    hal config storage s3 edit \
    --endpoint http://ip:9000 \
    --access-key-id xxxxx \
    --secret-access-key xxxx \
    --bucket spinnaker \
    --path-style-access true

    hal config storage edit --type s3

  • 添加account provider

    1
    2
    3
    4
    5
    6
    hal config provider kubernetes enable --no-validate
    hal config provider kubernetes account add default --context $(kubectl config current-context) --service-account true --omit-namespaces=kube-system,kube-public --provider-version v2 --no-validate
    # 如果添加失败可以删除
    # 删除命令 hal config provider kubernetes account delete default
    # 查看account添加列表
    hal config provider kubernetes account list
  • 设置部署命名空间

    1
    hal config deploy edit --account-name default --type distributed --location spinnaker
  • 功能配置开启

    1
    2
    3
    hal config features edit --pipeline-templates true
    hal config features edit --artifacts true
    hal config features edit --managed-pipeline-templates-v2-ui true
  • 配置访问域名

    1
    2
    hal config security ui edit --override-base-url http://spinnaker.local.k8s.ops.qipajun.com
    hal config security api edit --override-base-url http://spinnaker.local.k8s.ops.qipajun.com/gate/
  • 应用部署

    1
    2

    hal deploy apply
  • 备份

    1
    2
    3
    4
    5
    ~/.hal # hal backup create
    + Create backup
    Success
    + Successfully created a backup at location:
    /root/halyard-2020-12-30_06-11-33-774Z.tar
  • 恢复

    1
    hal backup restore --backup-path <backup-name>.tar