作者选择了 自由和开源基金作为 写给捐款计划的一部分接受捐款。
介绍
Spinnaker是一个开源资源管理和连续交付应用程序,用于快速、安全和可重复的部署,使用强大的和可自定义管道系统。 Spinnaker允许自动部署应用程序到许多平台,包括 DigitalOcean Kubernetes。在部署时,您可以配置Spinnaker以使用内置的 部署策略,如Highlander和Red/black,有创建自己的部署策略的选择。
Spinnaker 由 Halyard管理,该工具专门用于配置和部署 Spinnaker 到各种平台. Spinnaker 需要 外部存储以维持应用程序的设置和管道。
在本教程中,您将使用 Halyard 部署 Spinnaker 到 DigitalOcean Kubernetes,以 DigitalOcean Spaces 作为底层后端存储。您还将配置 Spinnaker 以便在您想要的域名上可用,通过使用 Let's Encrypt TLS 证书进行保护。 然后,您将在 Spinnaker 中创建样本应用程序,创建管道,并在您的 Kubernetes 集群中部署一个「Hello World」应用程序。
<$>[注]
注: 本教程已专门用 Spinnaker 1.13.5
测试。
前提条件
- 根据官方指示,机上安装的Halyard。 请注意,在Ubuntu版本上使用高于16.04的Halyard是不支持的. 在这种情况下,可以使用[通过多克 (https://www.spinnaker.io/setup/install/halyard/#install-halyard-on-docker).
- 数字海洋库伯内特斯集群与您的连接被配置为"kubectl"默认值 。 集群必须至少有8GB RAM和4个CPU核心可供Spinnaker使用(在使用更重的情况下需要更多). 关于如何配置
kubectl
的指令, 将显示在您的集群** 步骤的 ** 下。 要在 Digital Ocean 上创建库伯内蒂斯集群,请参见 [Kubernetes Quickstart] (https://www.digitalocean.com/docs/kubernetes/quickstart/). - 安装在集群上的 Nginx 入侵控制器和证书管理器 。 关于如何做到这一点的指南,见[如何在数字海洋库伯内特斯上设置Nginx入侵装置(https://andsky.com/tech/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes)。
- 数字海洋空间 有 API 密钥(访问和秘密). 要创建 DigitalOcean 空间和 API 密钥,请参见 [如何创建 DigitalOcean 空间和 API 密钥] (https://andsky.com/tech/tutorials/how-to-create-a-digitalocean-space-and-api-key).
- 一个有3个DNS A记录的域名指向了入侵者所使用的数字海洋负载平衡器. 如果您正在使用 DigitalOcean 来管理您的域名的 DNS 记录,请查询[如何创建 DNS 记录 (https://www.digitalocean.com/docs/networking/dns/how-to/manage-records/) 创建 A 记录. 在这个教程中,我们将将A记录称为
spinnaker.example.com'、
spinnaker-api.example.com'和`hello-world.example.com'. - A GitHub账户,加上一个GitHub组织,具有管理员权限和公众知名度。 该账户还必须是本组织一个小组的成员。 这需要完成第五步。 (英语)
步骤 1 — 使用 Halyard 添加 Kubernetes 帐户
在本节中,您将通过 Halyard 将 Kubernetes 帐户添加到 Spinnaker。
作为前提的一部分,您创建了echo1
和echo2
服务以及用于测试的echo_ingress
入口;您将不需要这些在本教程中,因此您现在可以删除它们。
开始通过运行以下命令删除 ingress:
1kubectl delete -f echo_ingress.yaml
然后,删除两个测试服务:
1kubectl delete -f echo1.yaml && kubectl delete -f echo2.yaml
kubectl delete
命令接受文件在通过-f
参数时被删除。
接下来,从本地机器创建一个将作为您的工作空间的文件夹:
1mkdir ~/spinnaker-k8s
通过运行以下命令导航到您的工作区:
1cd ~/spinnaker-k8s
Halyard 还不知道该在哪里部署 Spinnaker. 使用此命令启用 Kubernetes 提供商:
1hal config provider kubernetes enable
您将收到以下输出:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Edit the kubernetes provider
5 Success
6Problems in default.provider.kubernetes:
7- WARNING Provider kubernetes is enabled, but no accounts have been
8 configured.
9
10+ Successfully enabled kubernetes
Halyard记录了启用Kubernetes提供商所采取的所有步骤,并警告说尚未定义任何帐户。
接下来,您将为 Spinnaker 创建一个 Kubernetes _service 帐户,以及 RBAC。 服务帐户是一种用于单个名称空间的帐户类型。 它由软件使用,可在集群中执行各种任务。 RBAC(基于角色访问控制)是控制对 Kubernetes 集群中的资源的访问的方法。 它限制了帐户的范围,以确保您的集群没有意外改变任何重要的配置。
在这里,您将授予Spinnaker‘cluster-admin’权限,以允许它控制整个集群. 如果您想要创建更具限制性的环境,请参阅RBAC的官方Kubernetes文档。
首先,通过运行以下命令创建spinnaker
名称空间:
1kubectl create ns spinnaker
结果将看起来像:
1[secondary_label Output]
2namespace/spinnaker created
运行以下命令创建名为spinnaker-service-account
的服务帐户:
1kubectl create serviceaccount spinnaker-service-account -n spinnaker
您已使用n
旗来指定kubectl
在spinnaker
名称空间中创建服务帐户。
1[secondary_label Output]
2serviceaccount/spinnaker-service-account created
然后将其连接到cluster-admin
角色:
1kubectl create clusterrolebinding spinnaker-service-account --clusterrole cluster-admin --serviceaccount=spinnaker:spinnaker-service-account
您将看到以下结果:
1[secondary_label Output]
2clusterrolebinding.rbac.authorization.k8s.io/spinnaker-service-account created
Halyard 使用本地 kubectl 来访问群集。在部署 Spinnaker 之前,您需要将其配置为使用新创建的服务帐户。Kubernetes 帐户使用用户名和代币进行身份验证。当创建服务帐户时,Kubernetes 会创建一个新的秘密,并将其填充到帐户代币中。要获取spinnaker-service-account
的代币,您首先需要获取秘密的名称。
1TOKEN_SECRET=$(kubectl get serviceaccount -n spinnaker spinnaker-service-account -o jsonpath='{.secrets[0].name}')
这从名称空间spinnaker
获取有关spinnaker-service-account
的信息,并通过通过JSON路径获取其所包含的第一个秘密的名称。
将秘密的内容转化为名为TOKEN
的变量,运行:
1TOKEN=$(kubectl get secret -n spinnaker $TOKEN_SECRET -o jsonpath='{.data.token}' | base64 --decode)
您现在可以在环境变量TOKEN
中使用该代币,接下来,您需要在 kubectl 中为服务帐户设置凭据:
1kubectl config set-credentials spinnaker-token-user --token $TOKEN
您将看到以下结果:
1[secondary_label Output]
2User "spinnaker-token-user" set.
然后,您需要通过运行以下命令将当前背景的用户设置为新创建的spinnaker-token-user
:
1kubectl config set-context --current --user spinnaker-token-user
通过将当前用户设置为spinnaker-token-user
, kubectl 现在已配置为使用spinnaker-service-account
,但 Halyard 对此一无所知。
1hal config provider kubernetes account add spinnaker-account --provider-version v2
结果将是这样的:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Add the spinnaker-account account
5 Success
6+ Successfully added account spinnaker-account for provider
7 kubernetes.
此命令将Kubernetes帐户添加到Hayard,名为spinnaker-帐户
,并将其标记为服务帐户。
一般来说,Spinnaker可以以两种方式部署:分布式安装或本地安装。 _Distributed_安装是您在本教程中完成的—您正在部署到云端。 Local installation,另一方面,意味着Spinnaker将下载并安装到Halyard运行的机器上。
1hal config deploy edit --type distributed --account-name spinnaker-account
由于您的 Spinnaker 部署将是构建图像,因此必须在 Spinnaker 中启用文物
。
1hal config features edit --artifacts true
在这里,您已启用了文物
,以允许Spinnaker存储有关其创建的对象的更多元数据。
您已通过 Halyard 将 Kubernetes 帐户添加到 Spinnaker. 您启用了 Kubernetes 提供商,配置了 RBAC 角色,并将当前的 kubectl 配置添加到 Spinnaker,从而为提供商添加了帐户。
步骤 2 – 将空间配置为底层存储
在本节中,您将配置Space作为Spinnaker部署的底层存储空间,Spinnaker将使用Space来存储其配置和管道相关数据。
要在 Halyard 中配置 S3 存储,请运行以下命令:
1hal config storage s3 edit --access-key-id your_space_access_key --secret-access-key --endpoint spaces_endpoint_with_region_prefix --bucket space_name --no-validate
请记住用你的空间访问密钥代替your_space_access_key
和spaces_endpoint_with_region_prefix
代替你的空间的终端点,这通常是region-id.digitaloceanspaces.com
,其中region-id
是你的空间的区域。你可以代替space_name
代替你的空间的名称。--no-validate
旗帜告诉Hayard不要立即验证设置,因为不支持DigitalOcean Spaces验证。
一旦你运行了这个命令,Hayard会要求你提供你的秘密访问密钥. 输入它以继续,然后你会看到以下输出:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get persistent store
5 Success
6+ Edit persistent store
7 Success
8+ Successfully edited persistent store "s3".
现在你已经配置了s3
存储,你会通过运行以下命令确保你的部署将使用它作为其存储:
1hal config storage edit --type s3
结果将是这样的:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get persistent storage settings
5 Success
6+ Edit persistent storage settings
7 Success
8+ Successfully edited persistent storage.
您已将 Spinnaker 部署到您的 Kubernetes 集群中,并使用 Nginx Ingress 控制器将其曝光到您的域。
步骤 3 – 部署 Spinnaker 到您的集群
在本节中,您将使用 Halyard 部署 Spinnaker 到您的群集中,然后使用 Nginx Ingress 将其 UI 和 API 组件暴露在您的域中。 首先,您将配置您的域 URL:一个用于 Spinnaker 的用户界面和一个用于 API 组件。
首先,您需要在 Halyard 中编辑 Spinnaker 的 UI 和 API URL 配置值,并将其设置为您想要的域。
1hal config security api edit --override-base-url https://spinnaker-api.example.com
结果将看起来像:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get API security settings
5 Success
6+ Edit API security settings
7 Success
8...
要将 UI 终端设置为您的域,这就是您将访问 Spinnaker 的位置,运行:
1hal config security ui edit --override-base-url https://spinnaker.example.com
结果将看起来像:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get UI security settings
5 Success
6+ Edit UI security settings
7 Success
8+ Successfully updated UI security settings.
请记住,用您的域代替spinnaker-api.example.com
和spinnaker.example.com
。这些是您在 Nginx Ingress 控制器前提条件下创建的负载平衡器上指定的域。
您已经创建并保护了 Spinnaker 的 Kubernetes 帐户,将您的 Space 配置为其底层存储,并将其 UI 和 API 终端设置为您的域。
1hal version list
您的输出将显示可用的版本列表. 在写这篇文章的时刻,‘1.13.5’是最新版本:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get Spinnaker version
5 Success
6+ Get released versions
7 Success
8+ You are on version "", and the following are available:
9 - 1.11.12 (Cobra Kai):
10 Changelog: https://gist.GitHub.com/spinnaker-release/29a01fa17afe7c603e510e202a914161
11 Published: Fri Apr 05 14:55:40 UTC 2019
12 (Requires Halyard >= 1.11)
13 - 1.12.9 (Unbreakable):
14 Changelog: https://gist.GitHub.com/spinnaker-release/7fa9145349d6beb2f22163977a94629e
15 Published: Fri Apr 05 14:11:44 UTC 2019
16 (Requires Halyard >= 1.11)
17 - 1.13.5 (BirdBox):
18 Changelog: https://gist.GitHub.com/spinnaker-release/23af06bc73aa942c90f89b8e8c8bed3e
19 Published: Mon Apr 22 14:32:29 UTC 2019
20 (Requires Halyard >= 1.17)
要选择要安装的版本,请运行以下命令:
1hal config version edit --version 1.13.5
建议始终选择最新版本,除非您遇到某种回归。
您将看到以下结果:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Edit Spinnaker version
5 Success
6+ Spinnaker has been configured to update/install version "version".
7 Deploy this version of Spinnaker with `hal deploy apply`.
您现在已经完全配置了 Spinnaker 的部署,您将使用以下命令部署它:
1hal deploy apply
这个命令可能需要几分钟才能完成。
最终的结果将是这样的:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Prep deployment
5 Success
6+ Preparation complete... deploying Spinnaker
7+ Get current deployment
8 Success
9+ Apply deployment
10 Success
11+ Deploy spin-redis
12 Success
13+ Deploy spin-clouddriver
14 Success
15+ Deploy spin-front50
16 Success
17+ Deploy spin-orca
18 Success
19+ Deploy spin-deck
20 Success
21+ Deploy spin-echo
22 Success
23+ Deploy spin-gate
24 Success
25+ Deploy spin-rosco
26 Success
27...
Halyard 正在向您展示 Spinnaker 的每个微服务的部署状态. 在场景后面,它会调用 kubectl 来安装它们。
Kubernetes 将花费一些时间 - 平均10分钟 - 将所有容器带上,特别是第一次。
1kubectl get pods -n spinnaker -w
您已将 Spinnaker 部署到您的 Kubernetes 集群中,但无法在您的集群之外访问。
您将存储 ingress 配置到名为 spinnaker-ingress.yaml
的文件中. 使用您的文本编辑器创建它:
1nano spinnaker-ingress.yaml
添加以下几行:
1[label spinnaker-ingress.yaml]
2apiVersion: extensions/v1beta1
3kind: Ingress
4metadata:
5 name: spinnaker-ingress
6 namespace: spinnaker
7 annotations:
8 kubernetes.io/ingress.class: nginx
9 certmanager.k8s.io/cluster-issuer: letsencrypt-prod
10spec:
11 tls:
12 - hosts:
13 - spinnaker-api.example.com
14 - spinnaker.example.com
15 secretName: spinnaker
16 rules:
17 - host: spinnaker-api.example.com
18 http:
19 paths:
20 - backend:
21 serviceName: spin-gate
22 servicePort: 8084
23 - host: spinnaker.example.com
24 http:
25 paths:
26 - backend:
27 serviceName: spin-deck
28 servicePort: 9000
请记住,用 API 域代替spinnaker-api.example.com
,用 UI 域代替spinnaker.example.com
。
配置文件定义了一种名为spinnaker-ingress
的入口,注释指出,此入口的控制器将是 Nginx 控制器,而letsencrypt-prod
集群发行商将生成预先教程中定义的 TLS 证书。
然后,它指定了 TLS 将确保 UI 和 API 域名。它通过将 API 域名导向到Spinnaker API 容器
服务(Spinnaker API 容器),并将 UI 域名导向到Spinnaker UI 容器
服务(Spinnaker UI 容器)在相应的端口8084
和9000
。
保存并关闭文件。
在 Kubernetes 中创建 Ingress 运行:
1kubectl create -f spinnaker-ingress.yaml
您将看到以下输出:
1[secondary_label Output]
2ingress.extensions/spinnaker-ingress created
等待几分钟,让 Let’s Encrypt 提供 TLS 证书,然后在浏览器中导航到您的 UI 域名,‘spinnaker.example.com’.您将看到 Spinnaker 的用户界面。
您已部署 Spinnaker 到您的集群中,在您的域中曝光了 UI 和 API 组件,并测试了它是否有效,现在您将在 Spinnaker 中创建应用程序,并运行管道来部署Hello World
应用程序。
步骤 4 – 创建应用程序并运行管道
在本节中,您将使用您的域中的 Spinnaker 访问来创建一个应用程序,然后创建并运行一个管道来部署一个 Hello World
应用程序,可以在 paulbouwer/hello-kubernetes找到。
在右上角,按一下 Action,然后选择 Create Application. 你会看到 New Application表格。
输入Hello-world
作为名字,输入您的电子邮件地址,然后按 Create。
当页面加载时,通过点击顶部菜单中的第一个选项卡来导航到 ** 管道 ** 您将看到尚无定义的管道。
点击设置新管道
并打开新表单。
填写部署Hello World应用程序
作为你的管道名称,然后按 Create。
在下一页上,点击 添加阶段按钮.作为 Type,选择 Deploy (Manifest),用于部署您指定的Kubernetes表达式。对于 Stage Name,键入 Deploy Hello World
。向下滚动,在 Manifest Configuration下面的文本框中,输入以下行:
1[label Manifest Configuration]
2apiVersion: extensions/v1beta1
3kind: Ingress
4metadata:
5 name: hello-world-ingress
6 namespace: spinnaker
7 annotations:
8 kubernetes.io/ingress.class: nginx
9 certmanager.k8s.io/cluster-issuer: letsencrypt-prod
10spec:
11 tls:
12 - hosts:
13 - hello-world.example.com
14 secretName: hello-world
15 rules:
16 - host: hello-world.example.com
17 http:
18 paths:
19 - backend:
20 serviceName: hello-kubernetes
21 servicePort: 80
22---
23apiVersion: v1
24kind: Service
25metadata:
26 name: hello-kubernetes
27 namespace: spinnaker
28spec:
29 type: ClusterIP
30 ports:
31 - port: 80
32 targetPort: 8080
33 selector:
34 app: hello-kubernetes
35---
36apiVersion: apps/v1
37kind: Deployment
38metadata:
39 name: hello-kubernetes
40 namespace: spinnaker
41spec:
42 replicas: 3
43 selector:
44 matchLabels:
45 app: hello-kubernetes
46 template:
47 metadata:
48 labels:
49 app: hello-kubernetes
50 spec:
51 containers:
52 - name: hello-kubernetes
53 image: paulbouwer/hello-kubernetes:1.5
54 ports:
55 - containerPort: 8080
请记住,用您的域名替换hello-world.example.com
,该域名也指向您的加载平衡器。
在此配置中,您定义了一个部署
,由paulbouwer/hello-kubernetes:1.5
图像的三个副本组成。
在屏幕的右下角按 ** 保存更改**。当它完成时,返回 ** 管道**.在右侧,选择您刚刚创建的管道,然后按 ** 开始手动执行 ** 链接。
这个管道需要很短的时间才能完成,一旦成功完成,你会看到进度栏完成。
您现在可以导航到您在配置中定义的域,您将看到Spinnaker刚刚部署的Hello World
应用程序。
你已经在 Spinnaker 中创建了一个应用程序,运行了一个管道来部署一个Hello World
应用程序,并访问了它. 在下一步,你将通过启用 GitHub 组织授权来保护 Spinnaker。
步骤 5 – 允许基于角色的访问与 GitHub 组织
在本节中,您将启用 GitHub OAuth 身份验证和 GitHub 组织权限。 允许 GitHub OAuth 身份验证迫使 Spinnaker 用户通过 GitHub 登录,从而防止匿名访问。 通过 GitHub 组织权限只限制访问到组织中的成员。
要使 OAuth 身份验证工作,您首先需要设置权限回调 URL,这是用户在授权后将被重定向的地方。这是您的 API 域名以 /login
结束。
1hal config security authn oauth2 edit --pre-established-redirect-uri https://spinnaker-api.example.com/login
你会看到这个结果:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get authentication settings
5 Success
6+ Edit oauth2 authentication settings
7 Success
8+ Successfully edited oauth2 method.
要使用 GitHub 设置 OAuth 身份验证,您需要为您的组织创建一个 OAuth 应用程序。 要做到这一点,请前往 GitHub 上的您的组织,到 Settings,点击 Developer Settings,然后从左侧菜单中选择 OAuth Apps。
请输入Homepage URL
,输入https://spinnaker.example.com
,输入Authorization callback URL
,输入https://spinnaker-api.example.com/login
.然后按注册申请
。
请注意 客户端ID和 客户端秘密值 - 您将需要它们用于下一个命令。
通过创建 OAuth 应用程序,您可以通过运行以下命令来配置 Spinnaker 使用 OAuth 应用程序:
1hal config security authn oauth2 edit --client-id client_id --client-secret client_secret --provider GitHub
请记住,用 GitHub 设置页面上显示的值代替client_id
和client_secret
。
你的输出将是相似的如下:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get authentication settings
5 Success
6+ Edit oauth2 authentication settings
7 Success
8Problems in default.security.authn:
9- WARNING An authentication method is fully or partially
10 configured, but not enabled. It must be enabled to take effect.
11
12+ Successfully edited oauth2 method.
您已配置 Spinnaker 以使用 OAuth 应用程序. 现在,要启用它,执行:
1hal config security authn oauth2 enable
结果将看起来像:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Edit oauth2 authentication settings
5 Success
6+ Successfully enabled oauth2
您已经配置并启用了 GitHub OAuth 身份验证,现在用户将被迫通过 GitHub 登录以访问 Spinnaker. 但是,现在,任何拥有 GitHub 帐户的人都可以登录,这不是你想要的。
您需要通过本地 config 文件半手动设置此设置,因为 Halyard 还没有设置此设置的命令。
Halyard 在 ~/.hal/default/profiles/
下寻找自定义配置。 名为 `service-name-*.yml’ 的文件由 Halyard 收集,用于取代特定服务的设置。
在 ~/.hal/default/profiles/
中创建一个名为 gate-local.yml
的文件:
1nano ~/.hal/default/profiles/gate-local.yml
添加以下几行:
1[label gate-local.yml]
2security:
3 oauth2:
4 providerRequirements:
5 type: GitHub
6 organization: your_organization_name
将your_organization_name
替换为您的 GitHub 组织名称,保存并关闭文件。
有了这个配置,只有你的GitHub组织的成员才能访问Spinnaker。
<$>[注] 注: 只有你 GitHub 组织的会员会员设置为 公共,才能登录 Spinnaker。
现在,您将 Spinnaker 与一个更具体的访问规则解决方案集成:GitHub Teams. 这将允许您指定哪些团队(团队)将访问 Spinnaker 中创建的资源,例如应用程序。
要做到这一点,您需要在您的组织中为管理员帐户创建一个 GitHub 个人访问令牌。 要创建一个,请访问 个人访问令牌并按下 Generate New Token 按钮。 在下一页上,给出您选择的描述,并确保检查 read:org 范围,位于 admin:org 下面。
要在 Spinnaker 中配置 GitHub 团队角色授权,请运行以下命令:
1hal config security authz github edit --accessToken access_token --organization organization_name --baseUrl https://api.github.com
请确保用您生成的个人访问代码代替access_token
,并用组织的名称代替organization_name
。
产量将是:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get GitHub group membership settings
5 Success
6+ Edit GitHub group membership settings
7 Success
8+ Successfully edited GitHub method.
您已更新您的 GitHub 组设置,现在,您将通过运行以下命令将授权提供商设置为 GitHub:
1hal config security authz edit --type github
结果将看起来像:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Get group membership settings
5 Success
6+ Edit group membership settings
7 Success
8+ Successfully updated roles.
更新这些设置后,通过运行启用它们:
1hal config security authz enable
您将看到以下输出:
1[secondary_label Output]
2+ Get current deployment
3 Success
4+ Edit authorization settings
5 Success
6+ Successfully enabled authorization
有了所有更改,您现在可以将更改应用到运行 Spinnaker 部署中。
1hal deploy apply
一旦完成,等待Kubernetes传播更改,这可能需要一段时间,您可以通过运行来观察进展:
1kubectl get pods -n spinnaker -w
当所有 pods 状态变成运行
和可用性1/1
,导航到您的 Spinnaker UI 域。您将被重定向到 GitHub,并被要求登录,如果您尚未登录,如果您登录的帐户是组织的成员,您将被重定向到 Spinnaker 并登录。
1{"error":"Unauthorized", "message":"Authentication Failed: User's provider info does not have all required fields.", "status":401, "timestamp":...}
GitHub Teams 整合的效果是 Spinnaker 现在将它们翻译成 roles. 你可以在 Spinnaker 中使用这些 角色 来纳入特定团队成员的访问额外限制。
您还配置了 Spinnaker 以限制您的组织成员的访问,了解了角色和权限,并考虑了 GitHub 团队在与 Spinnaker 集成时的位置。
结论
您已成功配置并部署 Spinnaker 到您的 DigitalOcean Kubernetes 集群中。您现在可以更轻松地管理和使用云资源,从一个中心位置。 您可以使用触发器自动启动管道;例如,当新 Docker 图像被添加到注册表中时。 有关 Spinnaker 的条款和架构的更多信息,请访问 官方文档. 如果您希望在您的集群中部署私有 Docker 注册表以保留您的图像,请访问 如何在 DigitalOcean Spaces 上设置私有 Docker 注册表并使用它与 DO Kubernetes。