spinnaker简介
Spinnaker 是一个开源、多云持续交付平台,它将强大而灵活的管道管理系统与主要云提供商的集成相结合。Spinnaker 提供应用程序管理和部署,帮助您快速、自信地发布软件变更。
Spinnaker 提供了两组核心的功能: 应用管理与应用程序部署。
Spinnaker 由 Netflix 创建,已经过数百个团队在生产中经过数百万次部署的实际考验。它将强大而灵活的管道管理系统与主要云提供商的集成相结合。
项目地址:https://github.com/spinnaker/spinnaker
安装和配置 Spinnaker
本篇文章介绍如何通过配置代理方式在kubernetes集群中安装和设置 Spinnaker,以便将其配置为在生产中使用。
安装要求:
- 用于安装 Halyard 的机器:可以是本地计算机或 VM(Ubuntu 18.04 或更高版本、Debian 10 或更高版本)。
- 用于安装 Spinnaker 本身的 Kubernetes 集群:建议集群中至少有 4 个核心和 16GB 可用 RAM。
安装完整的 Spinnaker 涉及以下步骤:
- 安装Halyard
- 选择云提供商
- 选择环境
- 选择存储服务
- 部署 Spinnaker
- 备份您的配置
节点清单如下:
节点IP | 节点角色 | OS版本 | CPU | 内存 | 组件版本 |
---|---|---|---|---|---|
192.168.72.30 | halyard | ubuntu 22.04 LTS | 4C | 8G | halyard 1.62.2 |
192.168.72.40 | kubernetes-master spinnaker | ubuntu 22.04 LTS | 4C | 16G | kubernetes v1.27.7 spinnaker 1.32.2 |
说明:halyard也可以与kubernetes节点合并部署。
准备kubernetes集群
查看节点信息,kubernetes版本为v1.27.7,容器运行时为containerd.
bash
root@node40:~# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
node40 Ready control-plane 11d v1.27.7 192.168.72.40 <none> Ubuntu 22.04.2 LTS 5.15.0-76-generic containerd://1.6.24
已通过 helm 方式安装 openebs,用于通过 storageclass 为minio 动态提供存储卷
bash
root@node40:~# kubectl -n openebs get pods
NAME READY STATUS RESTARTS AGE
openebs-localpv-provisioner-658c87d4bb-rtsc7 1/1 Running 2 (22m ago) 11d
root@node40:~#
root@node40:~# kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
openebs-hostpath (default) openebs.io/local Delete WaitForFirstConsumer false 11d
已通过 helm 方式安装 minio,spinnaker依赖S3存储保存数据
bash
root@node40:~# kubectl -n minio get pods
NAME READY STATUS RESTARTS AGE
minio-8976fd4b7-42vkt 1/1 Running 0 103m
root@node40:~# kubectl -n minio get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
minio NodePort 10.96.2.159 <none> 9000:32000/TCP 103m
minio-console NodePort 10.96.1.5 <none> 9001:32001/TCP 103m
备注:记录minio service连接地址及凭证,后续spinnaker指定存储时需要使用,以上示例在集群内连接地址为http://minio.minio:9000
。
已通过 helm 方式安装 metallb,为ingress-nginx提供LoadBalancer类型IP地址
bash
root@node40:~# kubectl -n metallb-system get pods
NAME READY STATUS RESTARTS AGE
metallb-controller-5cd9b4944b-jwjbm 1/1 Running 0 104m
metallb-speaker-mqdh9 4/4 Running 0 104m
已通过 helm 方式安装 ingress-nginx 网关,后续通过创建ingress规则,连接spinnaker UI.
bash
root@node40:~# kubectl -n ingress-nginx get pods
NAME READY STATUS RESTARTS AGE
ingress-nginx-controller-8db7bbbc-mdpsv 1/1 Running 0 107m
root@node40:~# kubectl -n ingress-nginx get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ingress-nginx-controller LoadBalancer 10.96.3.108 192.168.72.191 80:31306/TCP,443:32253/TCP 107m
ingress-nginx-controller-admission ClusterIP 10.96.2.255 <none> 443/TCP 107m
备注:记录metallb为 ingress-nginx 分配的EXTERNAL-IP: 192.168.72.191
,后续访问spinnaker解析ingress域名时需要使用。
安装Halyard
Halyard 是一个命令行管理工具,用于管理 Spinnaker 部署的生命周期,包括编写和验证部署的配置、部署 Spinnaker 的每个微服务以及更新部署。
Spinnaker 的所有可生产部署都需要 Halyard 才能安装、配置和更新 Spinnaker。虽然可以在没有 Halyard 的情况下安装 Spinnaker,但不推荐这样做,如果遇到困难,官方只针对halyard的部署方式提供支持。
可以通过两种方式安装 Halyard:
-
本地 Debian/Ubuntu:这可以在台式机或笔记本电脑上,也可以在虚拟机上。
-
在 Docker 上:建议在至少具有 12GB RAM 的计算机上安装 Halyard。
这里以在 Ubuntu 虚拟机上直接安装halyard为例。
首先配置HTTP代理。
bash
cat >/etc/profile.d/proxy.sh<<EOF
export http_proxy="http://192.168.72.1:7890"
export https_proxy="http://192.168.72.1:7890"
export no_proxy="localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local"
EOF
source /etc/profile.d/proxy.sh
从github获取最新版本的 Halyard 安装脚本:
bash
curl -O \
https://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh
查看执行脚本的命令帮助
bash
bash InstallHalyard.sh --help
配置apt代理
bash
cat >/etc/apt/apt.conf.d/proxy.conf<<EOF
Acquire::http::proxy "http://192.168.72.1:7890";
Acquire::https::proxy "http://192.168.72.1:7890";
EOF
安装halyard,默认会系统提示输入确认信息,这里使用 -y
参数避免交互式安装。
bash
bash InstallHalyard.sh -y
或者安装指定版本,halyard版本可以在 github release 页面查询(可选)
bash
bash InstallHalyard.sh --version 1.62.0
检查 Halyard 是否安装正确:
bash
root@halyard:~# hal --version
1.62.0
确认halyard daemon服务是否ready,返回状态码0说明正常
bash
hal --ready
或者使用curl进行测试
json
root@halyard:~# curl http://192.168.72.30:8064/health
{
"status" : "UP"
}
查看halyard安装位置及配置文件路径
bash
root@halyard:~# ls /opt/halyard/bin/
hal hal.bat halyard halyard.bat
root@ubuntu:~# ls /opt/halyard/config/
halyard.yml
配置halyard的代理
halyard 需要访问 google storage 对象存储桶,获取bom物料清单文件中的版本信息,因此也需要为halyard自身配置代理。
修改/opt/halyard/bin/halyard
文件
bash
$ vim /opt/halyard/bin/halyard
DEFAULT_JVM_OPTS='"-Djava.security.egd=file:/dev/./urandom" "-Dspring.config.import=optional:/opt/spinnaker/config/" \
"-Dhttp.proxyHost=192.168.72.1" "-Dhttp.proxyPort=7890" \
"-Dhttps.proxyHost=192.168.72.1" "-Dhttps.proxyPort=7890" \
"-Dhttp.nonProxyHosts=\"localhost|*.example.com\""'
说明:注意为spinnaker UI域名配置nonproxy跳过代理,其中example.com为您最终想要访问Spinnaker集群的域名。
或者单独创建/etc/default/spinnaker
配置文件,无需手动编辑/opt/halyard/bin/halyard
bash
mkdir -p /etc/default/
cat >/etc/default/spinnaker<<EOF
HALYARD_OPTS='"-Dhttp.proxyHost=192.168.72.1" "-Dhttp.proxyPort=7890" \
"-Dhttps.proxyHost=192.168.72.1" "-Dhttps.proxyPort=7890" \
"-Dhttp.nonProxyHosts=\"localhost|*.example.com\""'
EOF
修改配置后需要重启hal服务,任意hal命令启动服务。
bash
hal shutdown && hal
查看当前hal版本支持的Spinnaker版本(能正常获取到Spinnaker版本,说明代理运行正常)。
bash
root@halyard:~# hal version list
+ Get current deployment
Success
+ Get Spinnaker version
Success
+ Get released versions
Success
+ You are on version "", and the following are available:
- 1.30.4 (v1.30.4):
Changelog: https://spinnaker.io/changelogs/1.30.4-changelog/
Published: Sat Sep 09 05:14:15 CST 2023
(Requires Halyard >= 1.45)
- 1.31.2 (v1.31.2):
Changelog: https://spinnaker.io/changelogs/1.31.2-changelog/
Published: Sat Sep 09 01:49:51 CST 2023
(Requires Halyard >= 1.45)
- 1.32.2 (v1.32.2):
Changelog: https://spinnaker.io/changelogs/1.32.2-changelog/
Published: Thu Sep 21 04:55:55 CST 2023
(Requires Halyard >= 1.45)
或者查看spinnaker最新稳定版本
bash
root@ubuntu:~# hal version latest -q
1.32.2
复制kubeconfig文件
在halyard节点安装kubectl命令
bash
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.27.7/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl
使用scp命令复制kubernetes节点上的/root/.kube/config
文件到halyard节点。
然后在halyard节点创建/home/spinnaker/.kube
目录,将kubeconfig文件复制到该目录,避免后续安装出现权限问题。
bash
mkdir -p /home/spinnaker/.kube
cp config /home/spinnaker/.kube/config
chown -R spinnaker:spinnaker /home/spinnaker/.kube/
切换到spinaker用户,并验证与远程集群连接是否正常
bash
root@ubuntu:~# su - spinnaker
spinnaker@ubuntu:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
node40 Ready control-plane 11d v1.27.7
容器运行时配置代理
由于后续部署spinnaker时需要连接外网仓库us-docker.pkg.dev
拉取docker镜像,需要连接到kubernetes节点,提前为containerd容器运行时配置代理。
bash
mkdir -p /etc/systemd/system/containerd.service.d
cat >/etc/systemd/system/containerd.service.d/10-default-env.conf<<EOF
[Service]
Environment="HTTP_PROXY=http://192.168.72.1:7890"
Environment="HTTPS_PROXY=http://192.168.72.1:7890"
Environment=NO_PROXY=192.168.0.0/16,10.233.0.0/16,.cluster.local,.svc,127.0.0.1/8,localhost,master,node1,node2,.kubesphere.local
Environment="NO_PROXY=localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local"
EOF
systemctl daemon-reload
systemctl restart containerd
使用crictl命令测试是否能够拉取镜像
bash
$ crictl pull us-docker.pkg.dev/spinnaker-community/docker/deck:3.15.1
Image is up to date for sha256:90ef47bcfda64698abe817f30b5d00da1baaa0a55ce8bfd14b3ce4305b8000cd
halyard 配置 spinnaker
后续所有操作切换到默认的spinnaker用户执行。
bash
su - spinnaker
指定 Spinnaker 版本
列出当前halyard可用的spinnaker版本。
bash
spinnaker@halyard:~$ hal version list
+ Get current deployment
Success
+ Get Spinnaker version
Success
+ Get released versions
Success
+ You are on version "", and the following are available:
- 1.30.4 (v1.30.4):
Changelog: https://spinnaker.io/changelogs/1.30.4-changelog/
Published: Sat Sep 09 05:14:15 CST 2023
(Requires Halyard >= 1.45)
- 1.31.2 (v1.31.2):
Changelog: https://spinnaker.io/changelogs/1.31.2-changelog/
Published: Sat Sep 09 01:49:51 CST 2023
(Requires Halyard >= 1.45)
- 1.32.2 (v1.32.2):
Changelog: https://spinnaker.io/changelogs/1.32.2-changelog/
Published: Thu Sep 21 04:55:55 CST 2023
(Requires Halyard >= 1.45)
选择一个要部署的 spinnaker 版本,这里以 spinnaker 最新版本为例:
bash
hal config version edit --version 1.32.2
或者直接使用最新版本
bash
hal config version edit --version $(hal version latest -q)
命令执行示例如下
bash
spinnaker@halyard:~$ hal config version edit --version 1.32.2
+ Get current deployment
Success
+ Edit Spinnaker version
Success
+ Spinnaker has been configured to update/install version "1.32.2".
Deploy this version of Spinnaker with `hal deploy apply`.
此时在会生成/home/spinnaker/.hal
目录以及config
配置文件,后续所有hal命令操作都会自动写入该config
文件。
bash
spinnaker@halyard:~$ cat .hal/config
添加spinnaker账户:
使用kubernetes cluster-admin作为spinnaker账户
bash
hal config provider kubernetes account add spinnaker-admin \
--context $(kubectl config current-context)
命令执行结果如下:
bash
spinnaker@halyard:~$ hal config provider kubernetes account add spinnaker-admin \
--context $(kubectl config current-context)
+ Get current deployment
Success
+ Add the spinnaker-admin account
Success
+ Successfully added account spinnaker-admin for provider
kubernetes.
为Spinnaker UI设置时区
bash
hal config edit --timezone Asia/Shanghai
命令执行结果如下:
bash
spinnaker@halyard:~$ hal config edit --timezone Asia/Shanghai
+ Get current deployment
Success
+ Get deployment configuration
Success
+ Edit deployment configuration
Success
Validation in default.stats:
- INFO Stats are currently ENABLED. Usage statistics are being
collected. Thank you! These stats inform improvements to the product, and that
helps the community. To disable, run `hal config stats disable`. To learn more
about what and how stats data is used, please see
https://spinnaker.io/docs/community/stay-informed/stats.
+ Successfully edited your deployment configuration
指定providers
在 Spinnaker 中,提供程序是与您部署应用程序的云平台的集成。
在本部分中,您将注册云平台的凭据。这些凭证在 Spinnaker 中称为帐户,Spinnaker 通过这些帐户部署您的应用程序。
Spinnaker 的所有抽象和功能都构建在其支持的云提供商之上。因此,要使 Spinnaker 执行任何操作,您必须至少启用一个提供商,并为其添加一个帐户。
根据需要添加任意数量的以下提供程序。
- AWS
- Kubernetes
- Azure
- Cloud Foundry
- DC/OS
- Docker Registry
- Google App Engine
- Google Compute Engine
- Oracle
配置提供程序,指定为kubernetes
bash
hal config provider kubernetes enable
命令执行结果如下:
bash
spinnaker@halyard:~$ hal config provider kubernetes enable
+ Get current deployment
Success
+ Edit the kubernetes provider
Success
+ Successfully enabled kubernetes
选择安装环境
根据您的使用案例,选择您想要安装 Spinnaker 的方式。在此步骤中,您将告诉 Halyard 在什么类型的环境中安装 Spinnaker。
推荐的路径是分布式安装到 Kubernetes 集群上,但所有这些方法都受支持:
-
Kubernetes 上的分布式安装
Halyard 单独部署 Spinnaker 的每个 微服务 。强烈建议在生产中使用。
-
Debian 软件包的本地安装
Spinnaker 部署在单台机器上。这对于较小的 Spinnaker 部署来说是可以的,但 Spinnaker 在更新时将不可用。
-
来自 GitHub 的本地 git 安装
这是为 Spinnaker 项目做出贡献的开发人员提供的。如果您是一名贡献者,您可能会拥有两个独立的安装 - 一个用于在生产中使用 Spinnaker 的分布式安装,另一个用于开发 Spinnaker 贡献的本地 Git 安装。
分布式安装适用于资源占用量较大的开发组织,以及那些无法承受 Spinnaker 更新期间停机的情况。
Spinnaker 部署到远程云,每个 微服务 独立部署。Halyard 创建了一个更小的无头 Spinnaker 来更新 Spinnaker 及其微服务,确保零停机更新。
使用您在配置提供程序时创建的$ACCOUNT
名称运行以下命令:
bash
hal config deploy edit --type distributed --account-name spinnaker-admin
命令执行结果如下:
bash
spinnaker@halyard:~$ hal config deploy edit --type distributed --account-name spinnaker-admin
+ Get current deployment
Success
+ Get the deployment environment
Success
+ Edit the deployment environment
Success
+ Successfully updated your deployment environment.
指定外置存储
Spinnaker 需要外部存储提供商来保存您的应用程序设置和配置的管道。由于这些数据非常敏感,并且丢失的代价可能会很高,因此我们建议您使用您有信心的托管存储解决方案。
Spinnaker 支持下列存储提供商。无论您选择哪个选项,都不会影响您对云提供商的选择。也就是说,您可以使用 Google Cloud Storage 作为存储源,但仍部署到 Microsoft Azure。
支持的存储解决方案,通过选择以下选项之一为您的 Spinnaker 实例设置持久存储。
- Azure Storage
- Google Cloud Storage
- Minio
- Redis (Not recommended for production environments)
- S3
- Oracle Object Storage
Spinnaker 支持使用 Minio 来保存您的应用程序设置和配置的管道。
警告:丢失 Minio 的数据将意味着丢失所有 Spinnaker 应用程序元数据和配置的管道。
Minio 是一个与 S3 兼容的对象存储,您可以自行托管。当您不想依赖云提供商来托管 Spinnaker 数据时,这是我们推荐的持久存储解决方案。
按照 Minio 主页上的说明安装 Minio,确保其在 Spinnaker 可访问的端点上运行。记录以下值:
ENDPOINT
:完全限定的端点 Minio 是可访问的。如果 Minio 与 Spinnaker 在同一台计算机上运行,则这可能是http://127.0.0.1:9001
(请注意,使用localhost
而不是127.0.0.1
不起作用,因为 AWS 开发工具包将然后尝试连接到 http://.localhost:9001)。MINIO_ACCESS_KEY
、MINIO_SECRET_KEY
:您配置 Minio 的访问/秘密密钥对。这些环境变量需要对 Minio 进程可见才能工作。
记录值如下:
bash
export ENDPOINT="http://minio.minio:9000"
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=minio123
鉴于 Minio 不支持版本控制对象,我们需要在 Spinnaker 中禁用它。将以下行添加到 ~/.hal/$DEPLOYMENT/profiles/front50-local.yml
:
yaml
DEPLOYMENT=default
mkdir -p /home/spinnaker/.hal/$DEPLOYMENT/profiles
echo "spinnaker.s3.versioning: false" > /home/spinnaker/.hal/$DEPLOYMENT/profiles/front50-local.yml
该$DEPLOYMENT
通常是 default
。在这里here阅读更多内容。如果该文件不存在,则可能需要创建它。
编辑存储设置,运行以下命令(请注意,我们选择 S3 作为存储类型,因为 Minio 实现了 S3 API):
bash
echo $MINIO_SECRET_KEY | hal config storage s3 edit --path-style-access=true \
--endpoint $ENDPOINT \
--access-key-id $MINIO_ACCESS_KEY \
--secret-access-key
hal config storage edit --type s3
命令执行结果如下:
bash
spinnaker@halyard:~$ echo $MINIO_SECRET_KEY | hal config storage s3 edit --path-style-access=true \
--endpoint $ENDPOINT \
--access-key-id $MINIO_ACCESS_KEY \
--secret-access-key
hal config storage edit --type s3
+ Get current deployment
Success
+ Get persistent store
Success
Generated bucket name: spin-ef45eb85-4a52-4825-a989-ccab7623e704
+ Edit persistent store
Success
Validation in default.persistentStorage:
- WARNING Your deployment will most likely fail until you configure
and enable a persistent store.
+ Successfully edited persistent store "s3".
+ Get current deployment
Success
+ Get persistent storage settings
Success
+ Edit persistent storage settings
Success
+ Successfully edited persistent storage.
警告: 除非您已将 Minio 配置为支持虚拟主机样式请求,否则您需要启用路径样式访问模式: hal config storage s3 edit --path-style-access true
。否则,Front50 将失败并出现 java.net.UnknownHostException: $BUCKET_NAME.localhost
异常。
配置spinnaker UI URL
修改Spinnaker Deck和Gate的域名配置
bash
hal config security ui edit --override-base-url http://spinnaker.example.com
hal config security api edit --override-base-url http://spinnaker.example.com/api/v1
修改gate组件配置,与override-base-url和ingress规则一致
yaml
mkdir -p /home/spinnaker/.hal/default/profiles
cat >/home/spinnaker/.hal/default/profiles/gate-local.yml<<EOF
server:
servlet:
context-path: /api/v1
EOF
mkdir -p /home/spinnaker/.hal/default/service-settings
cat >/home/spinnaker/.hal/default/service-settings/gate.yml<<EOF
healthEndpoint: /api/v1/health
EOF
部署 Spinnaker
现在我们已经启用了一个或多个云提供商、选择了部署环境并配置了持久存储,我们准备好选择 Spinnaker 的一个版本、部署它并连接到它。
执行以下命令开始部署 Spinnaker 到 kubernetes 集群
bash
hal deploy apply
命令输出结果如下:
bash
spinnaker@ubuntu:~$ hal deploy apply
+ Get current deployment
Success
+ Prep deployment
Success
Validation in default.stats:
- INFO Stats are currently ENABLED. Usage statistics are being
collected. Thank you! These stats inform improvements to the product, and that
helps the community. To disable, run `hal config stats disable`. To learn more
about what and how stats data is used, please see
https://spinnaker.io/docs/community/stay-informed/stats.
+ Preparation complete... deploying Spinnaker
+ Get current deployment
Success
+ Apply deployment
Success
+ Deploy spin-redis
Success
+ Deploy spin-clouddriver
Success
+ Deploy spin-front50
Success
+ Deploy spin-orca
Success
+ Deploy spin-deck
Success
+ Deploy spin-echo
Success
+ Deploy spin-gate
Success
+ Deploy spin-rosco
Success
+ Run `hal deploy connect` to connect to Spinnaker.
查看创建的pods
bash
root@node40:~# kubectl -n spinnaker get pods
NAME READY STATUS RESTARTS AGE
spin-clouddriver-77b9989787-962xc 1/1 Running 0 5m59s
spin-deck-7b6d795dcb-8pxfk 1/1 Running 0 6m
spin-echo-bbcd4f8f-nnnsf 1/1 Running 0 6m
spin-front50-58bf57cbcf-hd55d 1/1 Running 0 5m58s
spin-gate-5d4f6c9dd9-ks6m6 1/1 Running 0 6m
spin-orca-5cbf687487-bgbvx 1/1 Running 0 5m59s
spin-redis-6d475cc85c-mcv2v 1/1 Running 0 6m1s
spin-rosco-5df7654856-8pd7q 1/1 Running 0 5m58s
查看创建的service
bash
root@node40:~# kubectl -n spinnaker get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
spin-clouddriver ClusterIP 10.96.0.171 <none> 7002/TCP 6m7s
spin-deck ClusterIP 10.96.3.245 <none> 9000/TCP 6m6s
spin-echo ClusterIP 10.96.2.106 <none> 8089/TCP 6m6s
spin-front50 ClusterIP 10.96.1.59 <none> 8080/TCP 6m7s
spin-gate ClusterIP 10.96.1.2 <none> 8084/TCP 6m6s
spin-orca ClusterIP 10.96.0.69 <none> 8083/TCP 6m7s
spin-redis ClusterIP 10.96.3.62 <none> 6379/TCP 6m7s
spin-rosco ClusterIP 10.96.2.66 <none> 8087/TCP 6m6s
连接到 Spinnaker UI
浏览器必须能够与 Gate 端点通信,此端点默认为 http://localhost:8084
,但可以自定义。如果通过默认的 http://localhost:9000
访问 Spinnaker,请检查您是否已将 Gate 的端口(默认为 8084)转发到运行浏览器的计算机。
如果您通过自定义 URL 访问 Spinnaker,请确保已为 UI (Deck) 和 API (Gate) 服务设置 override-base-url
,如下面的问题所述。这些设置将在您的 Gate 和 Deck 端点之间配置跨域资源共享 (CORS);如果配置不正确,您的浏览器将拒绝来自 Deck to Gate 的请求。
这里使用ingress连接spinnaker UI,创建如下Ingress规则
yaml
# spinnakerIngress.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: spin-deck
namespace: spinnaker
spec:
rules:
- host: spinnaker.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: spin-deck
port:
number: 9000
- host: spin-gate.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: spin-gate
port:
number: 8084
应用ingress规则
kubectl apply -f spinnakerIngress.yaml
本地配置hosts解析,其中 192.168.72.250
为ingress服务绑定的 EXTERNAL-IP
bash
192.168.72.250 spinnaker.example.com
浏览器访问spinnaker
bash
http://spinnaker.spinbook.local
卸载halyard及spinnaker
从 Debian/Ubuntu 卸载 Halyard
重要提示:卸载 Halyard 会删除 ~/.hal
目录的全部内容。除非您准备好丢失配置,否则不要这样做。
如果您使用 Halyard 部署 Spinnaker,并且想要清除该部署,请运行以下命令:
bash
hal deploy clean -q
然后可以安全地卸载 Halyard:
bash
sudo ~/.hal/uninstall.sh