<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Spinnaker 生產(chǎn)環(huán)境安裝部署監(jiān)控

          共 21325字,需瀏覽 43分鐘

           ·

          2020-10-26 19:26

          • 1. 架構(gòu)分析

          • 2.準備工作

            • 2.1 啟動Halyard容器

            • 2.2 下載所需要的鏡像

            • 2.3 準備bom文件

          • 3.Halyard配置管理

            • 3.1.Halyard初始化配置

            • 3.2 添加鏡像倉庫(harbor)和k8s集群賬戶

            • 3.3 開啟特性功能

            • 3.4 配置JenkinsCI集成

            • 3.5 配置GitHub/GitLab集成

          • 4. 使用外部Redis集群

          • 5. 使用SQL數(shù)據(jù)庫

            • 5.1 Clouddriver服務(wù)

            • 5.2 Front50服務(wù)

            • 5.3 Orca服務(wù)

          • 6.部署

          • 7. 其他設(shè)置

            • 7.1 認證與授權(quán)

            • 7.2 郵件通知

            • 7.3 金絲雀分析

            • 7.4 監(jiān)控Spinnaker

          1. 架構(gòu)分析

          Halyard + Kubernetes + Redis + MySQL57 + S3

          • redis: Gate、Orca、Clouddrive、Rosco、Igor、Fiat、Kayenta
          • S3:Front50 、Kayenta


          數(shù)據(jù)持久化
          • Orca 、Clouddriver ?默認安裝使用redis存儲數(shù)據(jù),轉(zhuǎn)換為使用SQL數(shù)據(jù)庫存儲。
          • Front50 默認安裝使用s3持久化存儲,轉(zhuǎn)換為使用SQL數(shù)據(jù)庫存儲。
          • 使用k8s外部redis集群。

          2.準備工作

          • 包含6個節(jié)點的redis集群(3主+3從)。
          • MySQL 5.7數(shù)據(jù)庫。
          • 部署Minio用于S3存儲。
          • 下載Halyard容器鏡像。
          • 下載Spinnaker集群所需的容器鏡像(阿里云)。
          • 下載BOM自定義安裝所需的文件。

          2.1 啟動Halyard容器

          也可以使用二進制安裝。最好將halyard運行在一臺配置好kubectl客戶端的節(jié)點上。因為后續(xù)需要用到k8s集群賬戶信息。

          docker?pull?registry.cn-beijing.aliyuncs.com/spinnaker-cd/halyard:1.32.0
          mkdir?/root/.hal
          docker?run?-itd?--name?halyard?\
          ??-v?/root/.hal:/home/spinnaker/.hal?\
          ??-v?/root/.kube:/home/spinnaker/.kube?\
          ??registry.cn-beijing.aliyuncs.com/spinnaker-cd/halyard:1.32.0
          ?
          #
          #?以root身份進入容器,修改配置文件
          docker?exec?-it?-u?root?halyard?bash
          ?
          #
          #?修改spinnaker.config.input.gcs.enabled = false 。
          vi?/opt/halyard/config/halyard.yml
          ?
          spinnaker:
          ??artifacts:
          ????debian:?https://dl.bintray.com/spinnaker-releases/debians
          ????docker:?gcr.io/spinnaker-marketplace
          ??config:
          ????input:
          ??????gcs:
          ????????enabled:?false
          ??????writerEnabled:?false
          ??????bucket:?halconfig
          ?
          #
          #?需要重啟容器(如果此命令未重啟,則需要退出容器然后?docker?restart?halyard)
          hal?shutdown


          #
          #?啟動

          docker?start?halyard

          2.2 下載所需要的鏡像

          所有的鏡像已經(jīng)通過GitHub Actions自動同步到阿里云鏡像倉庫。大家直接下載。registry.cn-beijing.aliyuncs.com/spinnaker-cd/ ?為了方便可以直接運行腳本下載當前版本的所有鏡像。


          bom文件和下載鏡像的腳本都在這個壓縮包中,下載https://github.com/zeyangli/spinnaker-cd-install/actions

          #?上傳到服務(wù)器(運行halyard容器的節(jié)點)
          [email protected]:/root

          unzip?1.22.1-Image-Script.zip
          cd?1.22.1
          [root@master?1.22.1]#?ls?-a
          .??..??.boms??GetImages.sh??tagfile.txt

          #
          #?.boms需要放到.hal目錄下
          ##?GetImages.sh?鏡像下載腳本
          ##?tagfile.txt?鏡像標簽

          sh?-x?GetImages.sh??
          chmod?777?-R?.hal/

          #
          #?等待鏡像下載完成(這個腳本中做了ssh免密哦)

          tagfile.txt

          ##?tagfile
          [root@master?1.22.1]#?cat?tagfile.txt
          echo:2.14.0-20200817170018
          clouddriver:6.11.0-20200818115831
          deck:3.3.0-20200818132306
          fiat:1.13.0-20200817170018
          front50:0.25.1-20200831095512
          gate:1.18.1-20200825122721
          igor:1.12.0-20200817200018
          kayenta:0.17.0-20200817170018
          orca:2.16.0-20200817170018
          rosco:0.21.1-20200827112228

          GetImages.sh

          ##?script
          #!/bin/bash

          S_REGISTRY="gcr.io/spinnaker-marketplace"
          T_REGISTRY="registry.cn-beijing.aliyuncs.com/spinnaker-cd"
          NODES="node01.zy.com?node02.zy.com"

          ##?下載鏡像
          function?GetImages(){
          ????echo?-e?"\033[43;34m?=====GetImg=====?\033[0m"

          ????IMAGES=$(?cat?tagfile.txt)

          ????for?image?in?${IMAGES}
          ????do
          ????????for?node?in?${NODES}
          ????????do
          ???????????echo??-e?"\033[32m?${node}?--->?pull?--->?${image}?\033[0m"
          ???????????ssh?${node}?"docker?pull?${T_REGISTRY}/${image}"
          ???????????echo??-e?"\033[32m?${node}?--->?tag?--->?${image}?\033[0m"
          ???????????ssh?${node}?"docker?tag?${T_REGISTRY}/${image}?${S_REGISTRY}/${image}"
          ????????done
          ????done
          ????for?node?in?${NODES}
          ????do
          ???????echo?-e?"\033[43;34m?=====${node}===鏡像信息=====?\033[0m"
          ???????ssh?${node}?"docker?images?|?grep?'spinnaker-marketplace'?"
          ????done

          }

          GetImages

          2.3 準備bom文件

          [root@master?1.22.1]#?mv?.boms/?~/.hal/
          [root@master?1.22.1]#?cd?~/.hal/
          [root@master?.hal]#?cd?.boms/
          [root@master?.boms]#?ls
          bom??clouddriver??deck??echo??fiat??front50??gate??igor??kayenta??orca??rosco
          [root@master?.boms]#?tree
          .
          ├──?bom
          │???├──?1.19.4.yml
          │???└──?1.22.1.yml
          ├──?clouddriver
          │???├──?6.11.0-20200818115831
          │???│???└──?clouddriver.yml
          │???├──?6.7.3-20200401190525
          │???│???└──?clouddriver.yml
          │???└──?clouddriver.yml
          ├──?deck
          │???├──?3.0.2-20200324040016
          │???│???└──?settings.js
          │???├──?3.3.0-20200818132306
          │???│???└──?settings.js
          │???└──?settings.js
          ├──?echo
          │???├──?2.11.2-20200401121252
          │???│???└──?echo.yml
          │???├──?2.14.0-20200817170018
          │???│???└──?echo.yml
          │???└──?echo.yml
          ├──?fiat
          │???├──?1.10.1-20200401121252
          │???│???└──?fiat.yml
          │???├──?1.13.0-20200817170018
          │???│???└──?fiat.yml
          │???└──?fiat.yml
          ├──?front50
          │???├──?0.22.1-20200401121252
          │???│???└──?front50.yml
          │???├──?0.25.1-20200831095512
          │???│???└──?front50.yml
          │???└──?front50.yml
          ├──?gate
          │???├──?1.15.1-20200403040016
          │???│???└──?gate.yml
          │???├──?1.18.1-20200825122721
          │???│???└──?gate.yml
          │???└──?gate.yml
          ├──?igor
          │???├──?1.12.0-20200817200018
          │???│???└──?igor.yml
          │???├──?1.9.2-20200401121252
          │???│???└──?igor.yml
          │???└──?igor.yml
          ├──?kayenta
          │???├──?0.14.0-20200304112817
          │???│???└──?kayenta.yml
          │???├──?0.17.0-20200817170018
          │???│???└──?kayenta.yml
          │???└──?kayenta.yml
          ├──?orca
          │???├──?2.13.2-20200401144746
          │???│???└──?orca.yml
          │???├──?2.16.0-20200817170018
          │???│???└──?orca.yml
          │???└──?orca.yml
          └──?rosco
          ????├──?0.18.1-20200401121252
          ????│???├──?images.yml
          ????│???├──?packer
          ????│???│???├──?alicloud.json
          ????│???│???├──?alicloud-multi.json
          ????│???│???├──?aws-chroot.json
          ????│???│???├──?aws-ebs.json
          ????│???│???├──?aws-multi-chroot.json
          ????│???│???├──?aws-multi-ebs.json
          ????│???│???├──?aws-windows-2012-r2.json
          ????│???│???├──?azure-linux.json
          ????│???│???├──?azure-windows-2012-r2.json
          ????│???│???├──?docker.json
          ????│???│???├──?gce.json
          ????│???│???├──?huaweicloud.json
          ????│???│???├──?install_packages.sh
          ????│???│???├──?oci.json
          ????│???│???└──?scripts
          ????│???│???????├──?aws-windows-2012-configure-ec2service.ps1
          ????│???│???????├──?aws-windows.userdata
          ????│???│???????├──?windows-configure-chocolatey.ps1
          ????│???│???????└──?windows-install-packages.ps1
          ????│???└──?rosco.yml
          ????├──?0.21.1-20200827112228
          ????│???├──?images.yml
          ????│???├──?packer
          ????│???│???├──?alicloud.json
          ????│???│???├──?alicloud-multi.json
          ????│???│???├──?aws-chroot.json
          ????│???│???├──?aws-ebs.json
          ????│???│???├──?aws-multi-chroot.json
          ????│???│???├──?aws-multi-ebs.json
          ????│???│???├──?aws-windows-2012-r2.json
          ????│???│???├──?azure-linux.json
          ????│???│???├──?azure-windows-2012-r2.json
          ????│???│???├──?docker.json
          ????│???│???├──?gce.json
          ????│???│???├──?huaweicloud.json
          ????│???│???├──?install_packages.sh
          ????│???│???├──?oci.json
          ????│???│???└──?scripts
          ????│???│???????├──?aws-windows-2012-configure-ec2service.ps1
          ????│???│???????├──?aws-windows.userdata
          ????│???│???????├──?windows-configure-chocolatey.ps1
          ????│???│???????└──?windows-install-packages.ps1
          ????│???├──?README.md
          ????│???└──?rosco.yml
          ????├──?images.yml
          ????├──?packer
          ????│???├──?alicloud.json
          ????│???├──?alicloud-multi.json
          ????│???├──?aws-chroot.json
          ????│???├──?aws-ebs.json
          ????│???├──?aws-multi-chroot.json
          ????│???├──?aws-multi-ebs.json
          ????│???├──?aws-windows-2012-r2.json
          ????│???├──?azure-linux.json
          ????│???├──?azure-windows-2012-r2.json
          ????│???├──?docker.json
          ????│???├──?gce.json
          ????│???├──?huaweicloud.json
          ????│???├──?install_packages.sh
          ????│???├──?oci.json
          ????│???└──?scripts
          ????│???????├──?aws-windows-2012-configure-ec2service.ps1
          ????│???????├──?aws-windows.userdata
          ????│???????├──?windows-configure-chocolatey.ps1
          ????│???????└──?windows-install-packages.ps1
          ????├──?README.md
          ????└──?rosco.yml

          37?directories,?91?files

          3.Halyard配置管理

          docker exec -it halyard bash

          • Halyard初始化配置
          • 添加鏡像倉庫(Harbor)和K8s集群賬戶
          • 開啟特性功能(pipeline-templates、artifacts、managed-pipeline-templates-v2-ui)
          • 配置JenkinsCI集成
          • 配置GitHub/GitLab集成

          3.1.Halyard初始化配置

          #?設(shè)置Spinnaker版本,--version?指定版本
          hal?config?version?edit?--version?local:1.22.1

          #?設(shè)置時區(qū)
          hal?config?edit?--timezone?Asia/Shanghai

          #?設(shè)置存儲為s3(后面不用,但是必須配置bug)
          hal?config?storage?edit?--type?s3??--no-validate
          ????
          #?訪問方式:設(shè)置deck與gate的域名
          hal?config?security?ui?edit?--override-base-url?http://spinnaker.idevops.site
          hal?config?security?api?edit?--override-base-url?http://spin-gate.idevops.site

          3.2 添加鏡像倉庫(harbor)和k8s集群賬戶

          hal?config?provider?docker-registry?enable?--no-validate
          hal?config?provider?docker-registry?account?add?my-harbor-registry?\
          ????--address?http://192.168.1.200:8088?\
          ????--username?admin?\
          ????--password?Harbor12345

          hal?config?provider?kubernetes?enable
          hal?config?provider?kubernetes?account?add?default?\
          ????--docker-registries?my-harbor-registry?\
          ????--context?$(kubectl?config?current-context)?\
          ????--service-account?true?\
          ????--omit-namespaces=kube-system,kube-public?\
          ????--provider-version?v2?\
          ????--no-validate
          ????
          #?部署方式,分布式部署,名稱空間。
          hal?config?deploy?edit?\
          ????--account-name?default?\
          ????--type?distributed?\
          ????--location?spinnaker?

          3.3 開啟特性功能

          ##?開啟一些主要的功能(后期可以再追加)
          hal?config?features?edit?--pipeline-templates?true
          hal?config?features?edit?--artifacts?true
          hal?config?features?edit?--managed-pipeline-templates-v2-ui?true??

          3.4 配置JenkinsCI集成

          #?配置Jenkins
          hal?config?ci?jenkins?enable
          ###?JenkinsServer?需要用到賬號和密碼
          hal?config?ci?jenkins?master?add?my-jenkins-master-01?\
          ????--address?http://jenkins.idevops.site?\
          ????--username?admin?\
          ????--password?admin
          ###?啟用csrf
          hal?config?ci?jenkins?master?edit?my-jenkins-master-01?--csrf?true

          3.5 配置GitHub/GitLab集成

          #?GitHub
          ##?參考:https://spinnaker.io/setup/artifacts/github/
          ##?創(chuàng)建token?https://github.com/settings/tokens

          hal?config?artifact?github?enable

          hal?config?artifact?github?account?add?my-github-account?\
          ????--token?02eb8aa1c2cd67af305d1f606??\
          ????--username?zey

          #
          ?GitLab
          ##?https://spinnaker.io/setup/artifacts/gitlab/
          ##?創(chuàng)建一個個人的token(admin)
          hal?config?artifact?gitlab?enable
          hal?config?artifact?gitlab?account?add?my-gitlab-account?\
          ????--token?qqHX8T4VTpozbnX

          4. 使用外部Redis集群

          ##?service-settings
          mkdir?.hal/default/service-settings/
          vi?.hal/default/service-settings/redis.yml

          overrideBaseUrl:?redis://192.168.1.200:6379
          skipLifeCycleManagement:?true


          #
          #?profiles
          ##?/root/.hal/default/profiles
          [root@master?profiles]#?ls
          [root@master?profiles]#?vi?gate-local.yml
          redis:
          ????configuration:
          ?????????secure:
          ??????????????true

          5. 使用SQL數(shù)據(jù)庫

          5.1 Clouddriver服務(wù)

          創(chuàng)建數(shù)據(jù)庫

          CREATE?DATABASE?`clouddriver`?DEFAULT?CHARACTER?SET?utf8mb4?COLLATE?utf8mb4_unicode_ci;

          GRANT
          ??SELECT,?INSERT,?UPDATE,?DELETE,?CREATE,?EXECUTE,?SHOW?VIEW
          ON?`clouddriver`.*
          TO?'clouddriver_service'@'%'?IDENTIFIED?BY?'[email protected]';


          GRANT
          ??SELECT,?INSERT,?UPDATE,?DELETE,?CREATE,?DROP,?REFERENCES,?INDEX,?ALTER,?LOCK?TABLES,?EXECUTE,?SHOW?VIEW
          ON?`clouddriver`.*
          TO?'clouddriver_migrate'@'%'?IDENTIFIED?BY?'[email protected]';

          修改配置文件

          ##?/root/.hal/default/profiles
          bash-5.0$?cat?clouddriver-local.yml
          sql:
          ??enabled:?true
          ??#?read-only?boolean?toggles?`SELECT`?or?`DELETE`?health?checks?for?all?pools.
          ??#?Especially?relevant?for?clouddriver-ro?and?clouddriver-ro-deck?which?can
          ??#?target?a?SQL?read?replica?in?their?default?pools.
          ??read-only:?false
          ??taskRepository:
          ????enabled:?true
          ??cache:
          ????enabled:?true
          ????#?These?parameters?were?determined?to?be?optimal?via?benchmark?comparisons
          ????#?in?the?Netflix?production?environment?with?Aurora.?Setting?these?too?low
          ????#?or?high?may?negatively?impact?performance.?These?values?may?be?sub-optimal
          ????#?in?some?environments.
          ????readBatchSize:?500
          ????writeBatchSize:?300
          ??scheduler:
          ????enabled:?true

          ??#?Enable?clouddriver-caching's?clean?up?agent?to?periodically?purge?old
          ??#?clusters?and?accounts.?Set?to?true?when?using?the?Kubernetes?provider.
          ??unknown-agent-cleanup-agent:
          ????enabled:?false

          ??connectionPools:
          ????default:
          ??????#?additional?connection?pool?parameters?are?available?here,
          ??????#?for?more?detail?and?to?view?defaults,?see:
          ??????#?https://github.com/spinnaker/kork/blob/master/kork-sql/src/main/kotlin/com/netflix/spinnaker/kork/sql/config/ConnectionPoolProperties.kt
          ??????default:?true
          ??????jdbcUrl:?jdbc:mysql://192.168.1.200:3306/clouddriver
          ??????user:?clouddriver_service
          ??????password:?[email protected]
          ????#?The?following?tasks?connection?pool?is?optional.?At?Netflix,?clouddriver
          ????#?instances?pointed?to?Aurora?read?replicas?have?a?tasks?pool?pointed?at?the
          ????#?master.?Instances?where?the?default?pool?is?pointed?to?the?master?omit?a
          ????#?separate?tasks?pool.
          ????tasks:
          ??????user:?clouddriver_service
          ??????jdbcUrl:?jdbc:mysql://192.168.1.200:3306/clouddriver
          ??????password:?[email protected]
          ??migration:
          ????user:?clouddriver_migrate
          ????jdbcUrl:?jdbc:mysql://192.168.1.200:3306/clouddriver
          ????password:?[email protected]

          redis:
          ??enabled:?false
          ??cache:
          ????enabled:?false
          ??scheduler:
          ????enabled:?false
          ??taskRepository:
          ????enabled:?false

          5.2 Front50服務(wù)

          創(chuàng)建數(shù)據(jù)庫

          CREATE?DATABASE?`front50`?DEFAULT?CHARACTER?SET?utf8mb4?COLLATE?utf8mb4_unicode_ci;

          GRANT?SELECT,?INSERT,?UPDATE,?DELETE,?CREATE,?EXECUTE,?SHOW?VIEW?ON?`front50`.*??TO?'front50_service'@'%'?IDENTIFIED?BY?"[email protected]";

          GRANT?SELECT,?INSERT,?UPDATE,?DELETE,?CREATE,?DROP,?REFERENCES,?INDEX,?ALTER,?LOCK?TABLES,?EXECUTE,?SHOW?VIEW?ON?`front50`.*?TO?'front50_migrate'@'%'?IDENTIFIED?BY?"[email protected]";

          修改配置文件

          ##?/root/.hal/default/profiles
          bash-5.0$?cat?front50-local.yml
          spinnaker:
          ??s3:
          ????enabled:?false
          sql:
          ??enabled:?true
          ??connectionPools:
          ????default:
          ??????#?additional?connection?pool?parameters?are?available?here,
          ??????#?for?more?detail?and?to?view?defaults,?see:
          ??????#?https://github.com/spinnaker/kork/blob/master/kork-sql/src/main/kotlin/com/netflix/spinnaker/kork/sql/config/ConnectionPoolProperties.kt
          ??????default:?true
          ??????jdbcUrl:?jdbc:mysql://192.168.1.200:3306/front50
          ??????user:?front50_service
          ??????password:?[email protected]
          ??migration:
          ????user:?front50_migrate
          ????jdbcUrl:?jdbc:mysql://192.168.1.200:3306/front50
          ????password:?[email protected]

          5.3 Orca服務(wù)

          創(chuàng)建數(shù)據(jù)庫

          set?tx_isolation?=?'REPEATABLE-READ';

          CREATE?SCHEMA?`orca`?DEFAULT?CHARACTER?SET?utf8mb4?COLLATE?utf8mb4_unicode_ci;

          GRANT?
          SELECT,?INSERT,?UPDATE,?DELETE,?CREATE,?EXECUTE,?SHOW?VIEW
          ON?`orca`.*?
          TO?'orca_service'@'%'?IDENTIFIED?BY?"[email protected]"?;

          GRANT?
          SELECT,?INSERT,?UPDATE,?DELETE,?CREATE,?DROP,?REFERENCES,?INDEX,?ALTER,?LOCK?TABLES,?EXECUTE,?SHOW?VIEW?
          ON?`orca`.*?
          TO?'orca_migrate'@'%'??IDENTIFIED?BY?"[email protected]"?;

          修改配置文件

          ##?/root/.hal/default/profiles
          bash-5.0$?cat?orca-local.yml
          sql:
          ??enabled:?true
          ??connectionPool:
          ????jdbcUrl:?jdbc:mysql://192.168.1.200:3306/orca
          ????user:?orca_service
          ????password:?[email protected]
          ????connectionTimeout:?5000
          ????maxLifetime:?30000
          ????#?MariaDB-specific:
          ????maxPoolSize:?50
          ??migration:
          ????jdbcUrl:?jdbc:mysql://192.168.1.200:3306/orca
          ????user:?orca_migrate
          ????password:?[email protected]

          #?Ensure?we're?only?using?SQL?for?accessing?execution?state
          executionRepository:
          ??sql:
          ????enabled:?true
          ??redis:
          ????enabled:?false

          #?Reporting?on?active?execution?metrics?will?be?handled?by?SQL
          monitor:
          ??activeExecutions:
          ????redis:?false

          #?Use?SQL?for?Orca's?work?queue
          #?Settings?from?Netflix?and?may?require?adjustment?for?your?environment
          #?Only?validated?with?AWS?Aurora?MySQL?5.7
          #?Please?PR?if?you?have?success?with?other?databases
          keiko:
          ??queue:
          ????sql:
          ??????enabled:?true
          ????redis:
          ??????enabled:?false

          queue:
          ??zombieCheck:
          ????enabled:?true
          ??pendingExecutionService:
          ????sql:
          ??????enabled:?true
          ????redis:
          ??????enabled:?false

          6.部署

          hal?deploy?apply?--no-validate

          創(chuàng)建Ingress訪問

          apiVersion:?extensions/v1beta1
          kind:?Ingress
          metadata:
          ??name:?spinnaker-service
          ??annotations:
          ????kubernetes.io/ingress.class:?nginx
          spec:
          ??rules:
          ??-?host:?spinnaker.idevops.site
          ????http:
          ?????paths:
          ?????-?path:?/
          ???????backend:
          ??????????serviceName:?spin-deck
          ??????????servicePort:?9000
          ??-?host:?spin-gate.idevops.site
          ????http:
          ??????paths:
          ??????-?path:?/
          ????????backend:
          ??????????serviceName:?spin-gate
          ??????????servicePort:?8084
          ??-?host:?spin-front50.idevops.site
          ????http:
          ??????paths:
          ??????-?path:?/
          ????????backend:
          ??????????serviceName:?spin-front50
          ??????????servicePort:?8080
          ??-?host:?spin-fiat.idevops.site
          ????http:
          ??????paths:
          ??????-?path:?/
          ????????backend:
          ??????????serviceName:?spin-fiat
          ??????????servicePort:?7003
          kubectl?create?-f?ingress.yml

          7. 其他設(shè)置

          7.1 認證與授權(quán)

          • 認證:LDAP、Oauth2
          • 授權(quán):LDAP、File

          開啟認證LDAP/OAuth2(兩者二選一即可,推薦LDAP)

          #?開啟LDAP認證
          hal?config?security?authn?ldap?edit?\
          ????--user-search-base?'ou=devops,dc=zy,dc=com'?\
          ????--url?'ldap://192.168.1.200:389'?\
          ????--user-search-filter?'cn={0}'?\
          ????--manager-dn?'cn=admin,dc=zy,dc=com'?\
          ????--manager-password?'12345678'
          ?
          hal?config?security?authn?ldap?enable

          #
          #?--user-search-base??用戶搜索的部分
          ##?--url????LDAP服務(wù)器
          ##?--user-search-filter??搜索用戶DN時使用的過濾器
          ##?--manager-dn???LDAP管理器用戶
          ##?--manager-password??LDAP管理器用戶的密碼

          #
          ?GitHub
          ##?首先需要登錄GitHub然后創(chuàng)建一個OAuth APP。
          ##?參考官方:https://spinnaker.io/setup/security/authentication/oauth/github/

          hal?config?security?authn?oauth2?edit?--provider?github?\
          ??--client-id?66826xxxxxxxxe0ecdbd7?\
          ??--client-secret?d834851134e80a9xxxxxxe371613f05bc26

          hal?config?security?authn?oauth2?enable

          授權(quán)管理

          角色可以通過LDAP組定義也可以使用文件自定義。兩者二選一。

          通過LDAP組定義角色:例如我在LDAP中存在類型為groupOfUniqueName的組yunweizu。則關(guān)聯(lián)這個組的所有用戶的角色為yunweizu。后續(xù)添加權(quán)限則根據(jù)yunweizu授權(quán)。

          通過文件自定義:編寫一個靜態(tài)的yaml文件,里面定義每個用戶和其對應(yīng)的角色。

          #?使用Yaml文件
          ##如下配置設(shè)置user1為yunweizu、user2為demo。
          users:
          ??-?username:?devops
          ????roles:
          ????-?yunweizu
          ??-?username:?user2
          ????roles:
          ????-?demo
          ????
          hal?config?security?authz?enable?
          hal?config?security?authz?file?edit?--file-path=$HOME/.hal/userrole.yaml?
          hal?config?security?authz?edit?--type?file


          #
          #?授權(quán)(根據(jù)LDAP組進行授權(quán))
          hal?config?security?authz?ldap?edit?\
          ????--url?'ldap://192.168.1.200:389/dc=zy,dc=com'?\
          ????--manager-dn?'cn=admin,dc=zy,dc=com'?\
          ????--manager-password?'12345678'?\
          ????--user-dn-pattern?'cn={0}'?\
          ????--group-search-base?'ou=devops'?\
          ????--group-search-filter?'uniqueMember={0}'?\
          ????--group-role-attributes?'cn'?\
          ????--user-search-filter?'cn={0}’?
          ????????
          ?hal?config?security?authz?edit?--type?ldap
          ?hal?config?security?authz?enable

          開啟授權(quán)后可以設(shè)置那些用戶可以訪問集群賬戶、鏡像倉庫、應(yīng)用程序。

          ##?配置yunweizu和group02角色的用戶可以使用default這個集群賬戶
          hal?config?provider?kubernetes?account?edit?default?\
          --add-read-permission?yunweizu,group02??\
          --add-write-permission?yunweizu
          ??
          #
          #?配置yunweizu角色的用戶可以使用my-harbor-registry賬戶
          hal?config?provider?docker-registry?account?edit?my-harbor-registry?\
          ????--read-permissions?yunweizu?\
          ????--write-permissions?yunweizu

          開啟管道權(quán)限

          ~/.hal/default/profiles/orca-local.yml
          tasks:?
          ??useManagedServiceAccounts:?true

          ~/.hal/default/profiles/settings-local.js
          window.spinnakerSettings.feature.managedServiceAccounts?=?true;

          定義超級管理員

          vi?~/.hal/default/profiles/fiat-local.yml

          bash-5.0$?cat?fiat-local.yml
          fiat:
          ??admin:
          ????roles:
          ??????-?devops-admin???##?指定的組

          7.2 郵件通知

          .hal/default/profiles/echo-local.yml

          [root@master?profiles]#?cat?echo-local.yml
          mail:
          ??enabled:?true
          ??from:?250642@qq.com
          spring:
          ??mail:
          ????host:?smtp.qq.com
          ????username:?25642@qq.com
          ????password:?ubxijwaah
          ????protocol:?smtp
          ????default-encoding:?utf-8
          ????properties:
          ??????mail:
          ????????display:
          ??????????sendname:?SpinnakerAdmin
          ????????smtp:
          ??????????port:?465
          ??????????auth:?true
          ??????????starttls:
          ????????????enable:?true
          ????????????required:?true
          ??????????ssl:
          ????????????enable:?true
          ????????transport:
          ??????????protocol:?smtp
          ????????debug:?true

          .hal/default/profiles/settings-local.js

          window.spinnakerSettings.notifications.email.enabled?=?true;

          更新配置

          hal?deploy?apply?--no-validate

          7.3 金絲雀分析

          配置存儲

          hal?config?canary?enable?

          #
          #aws s3 minio 創(chuàng)建一個bucket spinnaker-canary,賦予讀寫權(quán)限。
          hal?config?canary?aws?enable
          hal?config?canary?aws?account?add?my-canary??\
          --bucket?spinnaker-canary?\
          --endpoint?http://minio.idevops.site?\
          --access-key-id?AKIAIOSFODNN7EXAMPLE?\
          --secret-access-key?wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY?

          hal?config?canary?edit?--default-storage-account?my-canary
          hal?config?canary?aws?edit?--s3-enabled?true

          Prometheus集成

          ##?prometheus
          hal?config?canary?prometheus?enable

          #
          #?這里做了basic認證,無認證忽略username和password選項。
          hal?config?canary?prometheus?account?add?my-prometheus?\
          --base-url?http://prometheus.idevops.site?\
          --username?admin?\
          --password?admin?

          hal?config?canary?edit?--default-metrics-account?my-prometheus
          hal?config?canary?edit?--default-metrics-store?prometheus

          hal?deploy?apply?--no-validate

          效果



          7.4 監(jiān)控Spinnaker

          hal?config?metric-stores?prometheus?enable
          hal?deploy?apply?--no-validate

          [root@master?monitor]#?kubectl?get?pod?-n?spinnaker
          NAME???????????????????????????????READY???STATUS????RESTARTS???AGE
          spin-clouddriver-7cd94f5b9-cn22r???2/2?????Running???2??????????4h4m
          spin-deck-684854fbd7-cb7wh?????????1/1?????Running???1??????????4h4m
          spin-echo-746b45ff98-kcz5m?????????2/2?????Running???2??????????4h4m
          spin-front50-66b4f9966-l6r4h???????2/2?????Running???2??????????4h4m
          spin-gate-6788588dfc-q8cpt?????????2/2?????Running???2??????????4h4m
          spin-igor-6f6fbbbb75-4b4jd?????????2/2?????Running???2??????????4h4m
          spin-kayenta-64fddf7db9-j4pqg??????2/2?????Running???2??????????4h4m
          spin-orca-d5c488b48-5q8sp??????????2/2?????Running???2??????????4h4m
          spin-rosco-5f4bcb754c-9kgl9????????2/2?????Running???2??????????4h4m

          #?通過describe可以看到POD中存在一個sidecar容器monitoring-daemon
          kubectl?describe?pod?spin-gate-6788588dfc-q8cpt?-n?spinnaker
          ????

          正常運行后通過 podID:8008/prometheus_metrics獲取度量數(shù)據(jù),需要添加以下服務(wù)發(fā)現(xiàn)配置。

          #?prometheus需要添加配置
          -?job_name:?'spinnaker-services'
          ??kubernetes_sd_configs:
          ??-?role:?pod
          ??metrics_path:?"/prometheus_metrics"
          ??relabel_configs:
          ??-?source_labels:?[__meta_kubernetes_pod_label_app]
          ????action:?keep
          ????regex:?'spin'
          ??-?source_labels:?[__meta_kubernetes_pod_container_name]
          ????action:?keep
          ????regex:?'monitoring-daemon'
          ????
          ????
          ## prometheus-operator 按照以下配置,其他方式忽略以下配置。
          apiVersion:?monitoring.coreos.com/v1
          kind:?ServiceMonitor
          metadata:
          ??name:?spinnaker-all-metrics
          ??labels:
          ????app:?spin
          ????#?this?label?is?here?to?match?the?prometheus?operator?serviceMonitorSelector?attribute
          ????#?prometheus.prometheusSpec.serviceMonitorSelector
          ????#?https://github.com/helm/charts/tree/master/stable/prometheus-operator
          ????release:?prometheus-operator
          spec:
          ??selector:
          ????matchLabels:
          ??????app:?spin
          ????namespaceSelector:
          ??????any:?true
          ??endpoints:
          ??#?"port"?is?string?only.?"targetPort"?is?integer?or?string.
          ??-?targetPort:?8008
          ????interval:?10s
          ????path:?"/prometheus_metrics"

          打開prometheus頁面,能夠看到以下信息。


          對接Grafana展示數(shù)據(jù),Spinnaker官方提供了控制臺模板。https://github.com/spinnaker/spinnaker-monitoring/tree/master/spinnaker-monitoring-third-party/third_party/prometheus



          打開Grafana控制臺,開始導入json模板。模板較多,創(chuàng)建一個文件夾管理。



          ?點擊屏末?|??|?即刻學習

          瀏覽 50
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一级免费网站 | 亚洲婷婷夜色 | 免费的AV在线 | 女人高潮特黄AAAAA片 | 男女无遮无挡一区二区爱豆视频 |