Spinnaker 高可用安装构思与实践

由于官方没有提供高可用的方案。官方直接建议由K8S进行调度,但是由于网络原因往往无法安装成功。生产环境如果是单点方案,死掉一个以后,恢复的时间由于网络原因时间会非常长。着急上线或者部署的话会出现很大的问题。
Spinnaker所有的配置文件由minio进行存储。Minio高可用的话,可以解决存储的问题。但是还是不能解决spinnaker挂掉一个然后不影响使用的问题
基本构思是,先安装一个minio集群,然后将另外一套spinnaker直接连接相同的k8s,相同的minio,然后达到高可用的方案。
国内安装spinnaker需要解决的问题、存储的问题、服务恢复的问题、使用IP登录的问题、等等。

一、 准备环境

直接安装在主机上,spinnaker只支持ubuntu。选择了较为新的ubuntu18.04.
Ubuntu方案。采用s+ privoxy的方案来分别使用http+https的代理方式
下载文件
wget https://bootstrap.pypa.io/get-pip.py –no-check-certificate
执行安装
sudo python get-pip.py

sudo pip install https://github.com/s/s/archive/master.zip
配置s.json
sudo vi /etc/s.json

{
“server”:”XXX.XXX.XXX.XXX”,
“server_port”:10367,
“local_address”:”127.0.0.1”,
“local_port”:1080,
“password”:”XXX”,
“timeout”:300,
“method”:”rc4-md5”,
“fast_open”:false,
“workers”: 1
}
这个是自己的服务器。后期估计随时有可能断线,需要搭建ssl服务器
运行 sslocal
sudo nohup sslocal -c /etc/s.json &>> /var/log/sslocal.log &
安装完了s以后 需要使用代理链接
apt-get install privoxy -y
echo “forward-socks5 / 127.0.0.1:1080 .” >>/etc/privoxy/config
systemctl restart privoxy

配置wget代理下载
vi /etc/wgetrc
添加
https_proxy = http://127.0.0.1:8118/
http_proxy = http://127.0.0.1:8118/
ftp_proxy = http://127.0.0.1:8118/
设置http/https代理
export http_proxy=http://127.0.0.1:8118 # privoxy默认监听端口为8118
export https_proxy=http://127.0.0.1:8118
测试是否成功
curl www.google.com

二、 安装hal

curl -O https://raw.githubusercontent.com/spinnaker/halyard/master/install/debian/InstallHalyard.sh
下载完文件后,脚本默认使用curl方式下载文件,由于网络原因经常无法下载或断开连接,修改脚本中的curl变更成wget的方式
Curl -O https://storage.googleapis.com/$gcs_bucket_and_file
变成
Wget https://storage.googleapis.com/$gcs_bucket_and_file

sudo apt-get install software-properties-common -y
sudo apt-get install openjdk-8-jdk -y

sudo bash InstallHalyard.sh

安装完成,不能安装的话 多重复几遍。
安装完成以后设置
sudo vi /opt/halyard/bin/halyard
DEFAULT_JVM_OPTS=’”-Djava.security.egd=file:/dev/./urandom” “-Dspring.config.location=/opt/spinnaker/config/” “-DsocksProxyHost=127.0.0.1 -DsocksProxyPort=8118”’
重启hal服务
hal shutdown
hal

三、安装minio集群

以上安装了hal官方建议的管理程序。接下来安装minio集群。这边有四台服务器,来组建一个minio的最小集群方案,官方建议最小的是4个minio节点,minio的端口跟spinnaker的端口冲突了。这里修改为9001。
下载minio的二进制包
curl -O https://dl.minio.io/server/minio/release/linux-amd64/minio
sudo chmod +x minio
sudo mv minio /usr/local/bin

安装完成以后,配置systemd管理方式

vim /lib/systemd/system/minio.service

[Unit]
Description=Minio service
Documentation=https://docs.minio.io/

[Service]
WorkingDirectory=/opt/minio/
ExecStart=/opt/minio/run.sh

Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

chmod +x /lib/systemd/system/minio.service

编辑minio的启动脚本
vim /opt/minio/run.sh

!/bin/bash

export MINIO_ACCESS_KEY=minio
export MINIO_SECRET_KEY=minio123
minio server –address 172.16.2.109:9001 –config-dir /etc/minio \
http://172.16.2.81:9001/data/minio/ http://172.16.2.109:9001/data/minio/ \
http://172.16.2.82:9001/data/minio/ http://172.16.2.112:9001/data/minio/

chmod +x /opt/minio/run.sh

这个脚本注意每个机器上面的IP地址不对,需要根据实际IP进行变动,每台机器上面放一个 。
启动minio
systemctl start minio
将minio添加到开机启动
systemctl enable minio

四、开始安装spinnaker

你可能感兴趣的:(spinnaker,spinnaker)