© JoeyXu
Powered by LOFTER

基于kubernetes的spinnaker生产级别安装(国内)

  1. 环境准备

    · 一个或多个kubernetes集群环境

    · 一台Ubuntu 16.04,用于部署halyard,需要能与master通信

    · ss 配置全局代理,用于halyard从google获取信息和docker下载镜像

    注意:

    如果不用ubuntu主机,可采用docker方式部署,具体参考官网

    如果不配置docker代理,也可以在halyard的halyard.yml中配置镜像仓库

  2. 环境说明:

    ss客户端ip:192.168.1.1

    minio存储:192.168.1.9

  3. 基础环境配置

    · docker 参数配置:       

    cat /etc/systemd/system/docker.service.d/docker-proxy.conf 

        [Service]

        Environment="ALL_PROXY=socks5://192.168.1.1:1080"

    · hal和halyard 参数配置:

    DEFAULT_JVM_OPTS='"-Dhttp.proxyHost=192.168.1.1" "-Dhttp.proxyPort=1080" "-Dhttps.proxyHost=192.168.1.1" "-Dhttps.proxyPort=1080" "-Djava.security.egd=file:/dev/./urandom" "-Dspring.config.location=/opt/spinnaker/config/"'

    安装halyard

    注意:首先创建spinnaker用户,建议ubuntu主机使用root账号安装

    root@ubuntu:~# curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh

    root@ubuntu:~#  bash InstallHalyard.sh


    说明:提示输入一个非root账号,输入spinnaker即可,等待下载完成一路回车就行

    配置hal和halyard参数:

    安装相关的目录都在/opt/halyard,打开bin下面的hal和halyard文件,找到JAVA_OPTS行,添加上述参数,添加完成以后执行 hal shutdown 关闭,然后执行hal version list 查看spinnaker的版本。

    如果此命令失败,请确保hal在您的命令在$PATH中,并检查日志查看是否有错误(/var/log/spinnaker/halyard/halyard.log),大多数的坑都是代理产生的,一定要确保代理可用。

    配置kubernetes环境

    把kubectl命令和/root/.kube 目录复制到Ubuntu主机上(只留conf即可,其他删除)或者单独进行授权

    kubectl ---> /usr/bin/

    .kube    ---> /root/.kube

    操作都在ubuntu主机上:

    相关文件和命令都可以去https://www.spinnaker.io/setup/install/providers/kubernetes-v2/ 复制执行,此处可能存在格式问题

    创建spinnaker的service-account:

    CONTEXT=`grep current-context /root/.kube/config|awk '{print $2}'`

    kubectl apply --context $CONTEXT -f https://spinnaker.io/downloads/kubernetes/service-account.yml

    TOKEN=$(kubectl get secret --context$CONTEXT\$(kubectl get serviceaccount spinnaker-service-account --context$CONTEXT -n spinnaker -ojsonpath='{.secrets[0].name}') -n spinnaker -ojsonpath='{.data.token}' | base64 --decode)

    kubectl config set-credentials ${CONTEXT}-token-user--token$TOKEN

    kubectl config set-context $CONTEXT--user${CONTEXT}-token-user

    创建spinnaker的rbac:

    kubectl apply --context $CONTEXT -f service-rabc.yml


    开启spinnaker的kubernetes服务接口:

    hal config provider kubernetes enable

    添加account:

    hal config provider kubernetes account add my-k8s-v2-account  --provider-version v2 --context$(kubectl config current-context)

    hal config features edit --artifactstrue

    hal config deploy edit --type distributed --account-name my-k8s-v2-account

    重启hal:

    hal shutdown

    部署minio

    使用helm安装minio,pvc使用的是openebs存储

    helm fetch stable/minio

    下载chart文件并修改存储类和access key和secret key:

    storageClassName: openebs-standard

    helm install minio --name=minio namespace=spinnaker

    禁用s3存储:

     /home/spinnaker/.hal/default/profiles/front50-local.yml

    spinnaker.s3.versioning: false

  4. 部署spinnaker

    获取可用版本号:hal version list

    选择使用的版本号:halconfigversionedit--version

    部署spinnaker:hal deploy apply

  5. 至此,安装完成,修改service类型进行访问


    打开浏览器,NodePort方式进行访问:


    注意:如果在deploy过程中日志出现Unable to connect to the Server  EOF,这便是权限问题,在github提了issue,暂且没人回复

  6. 访问方式

    官方推荐ssh方式:hal deploy connect

    ingress方式:

    首先修改服务的绑定地址:

    echo "host: 0.0.0.0" | tee \

        /home/spinnaker/.hal/default/service-settings/gate.yml \

        /home/spinnaker/.hal/default/service-settings/deck.yml

    然后配置域名访问的URL:

    hal config security ui edit \

        --override-base-url https://xxx.xxx.xxx:9000

    hal config security api edit \

        --override-base-url https://xxx.xxx.xxx:8084

    配置修改完成后:hal deploy apply 更新


    部署到此为止,后续内容有时间再更新吧

    部署有疑问请加微信JieLinux共同讨论

评论
热度 ( 1 )