网站首页 > 开源技术 正文
Helm简介
Helm 是 Kubernetes 的软件包管理工具,类似于Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip,能快速查找、下载和安装软件包。包含几个基本概念:
- Chart:一个 Helm 包,封装kubernetes原生应用程序的yaml文件
- Release: 在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。
- Repository:用于发布和存储 Chart 的仓库。
- config:包含了应用发布配置信息
使用Helm安装spinnaker
开始安装前,默认K8S集群已经准备完毕。
安装Helm
软件包下载地址:https://github.com/helm/helm/releases
$ wget https://get.helm.sh/helm-v3.2.0-linux-amd64.tar.gz
$ tar -zxvf helm-v3.2.0-linux-amd64.tar.gz
$ mv linux-amd64/helm /usr/local/bin/helm
$ helm version
version.BuildInfo{Version:"v3.2.0", GitCommit:"xx", GitTreeState:"clean", GoVersion:"go1.13.5"}
下载spinnaker charts
下载地址:https://github.com/helm/charts/tree/master/stable/spinnaker
下载好,需要修改values文件,用来适配我们自己的k8s环境。
设置挂载
本文k8s集群在阿里云中,所以挂载点选择的云盘,用来放redis缓存及各种配置文件。
persistence:
enabled: true
accessModes:
- ReadWriteOnce
size: 30Gi
storageClass: "alicloud"
设置additionalProfileConfigMaps
此处设置之后,文件会挂载到/home/spinnaker/.hal/default/profiles目录下,与权限设置有关系。
additionalProfileConfigMaps:
data:
fiat-local.yml:
fiat:
admin:
roles:
- administrator
orca-local.yml:
tasks:
useManagedServiceAccounts: true
settings-local.js:
window.spinnakerSettings.feature.managedServiceAccounts = true;
设置additionalServiceSettings
此处设置后,文件会挂载到/home/spinnaker/.hal/default/service-settings,将spinnaker需要的镜像设置为自己的镜像仓库地址。
fiat.yml:
artifactId: xxxx(你的仓库地址)
kubernetes:
imagePullSecrets:
- (私有仓库设置)
其余配置插件也是同样设置。
设置bom
此处设置后,文件会挂载到/home/spinnaker/.hal/.boms/bom,设置bom,spinnaker就会从你设置的镜像仓库中拉取镜像了。
bom: |-
version: 1.19.6
timestamp: '2020-04-21 08:00:59'
services:
echo:
version: 2.11.3-20200421040016
commit: 37f1dab07bc77dfd466806d5289a9b890bf75ffa
clouddriver:
version: 6.7.3-20200401190525
commit: 77c774d185de42bb83dffde1f813f719f712994b
deck:
version: 3.0.3-20200415122124
commit: d7fae58cc712674f0f0fe5aa84f5578396afbcad
fiat:
version: 1.10.3-20200421040016
commit: 546552369de7ab108d32f085495166016ba5b019
front50:
version: 0.22.1-20200401121252
commit: ef1e7feff41797beb2d1695c1c3c0face550fe4b
gate:
version: 1.15.2-20200415095112
commit: 14d7678ea7602e7fa2947e0b5650e10e13ba51cd
igor:
version: 1.9.2-20200401121252
commit: 576235bcfce0c48bc139e9c94fe98b3467d3d170
kayenta:
version: 0.14.0-20200304112817
commit: 85f590de74db46d54f016d88862418c990a17747
orca:
version: 2.13.4-20200416040016
commit: 6d92294e8f94df042cd1bf6ae48448ec2ea70a6a
rosco:
version: 0.18.1-20200401121252
commit: 9a20165e9c0d33e538d0038d5d02cb480e27f8c3
defaultArtifact: {}
monitoring-third-party:
version: 0.16.2-20200228142642
commit: 94c6e9cd3006347efe3101c0e6d8f98ce65f9053
monitoring-daemon:
version: 0.16.2-20200228142642
commit: 94c6e9cd3006347efe3101c0e6d8f98ce65f9053
dependencies:
redis:
version: 2:2.8.4-2
consul:
version: 0.7.5
vault:
version: 0.7.0
artifactSources:
debianRepository: https://dl.bintray.com/spinnaker-releases/debians
dockerRegistry: xxxxxxx googleImageProject: marketplace-spinnaker-release
gitPrefix: https://github.com/spinnaker
注意,版本需要对应,查看版本方法:hal version bom <version>
设置env代理
halyard在安装的时候,会从gcs拉取配置,比对版本,此处设置代理,使得halyard可以访问外网。当然也可以禁用hal比对,但是就需要将所有的配置文件下载到本地,比较麻烦,具体可以看我上一篇文章。
env:
- name: JAVA_OPTS
value: '"-Djava.security.egd=file:/dev/./urandom" "-Dspring.config.additional-location=/opt/spinnaker/config/" "-Dhttp.proxyHost=192.168.xx" "-Dhttp.proxyPort=80" "-Dhttps.proxyHost=192.168.xx" "-Dhttps.proxyPort=80" "-Dhttp.nonProxyHosts=\"localhost|*.example.com\""'
设置docker仓库
dockerRegistries选项,按照提示输入自己的仓库地址、用户名密码。
设置kubeConfig
设置我们自己的k8s集群,需要提前做secret。
$ kubectl create secret generic kubeconfig --from-file=./config
kubeConfig:
enabled: true
secretName: kubeconfig
secretKey: config
contexts:
- spin
deploymentContext: spin omittedNameSpaces:
- kube-system
- kube-public
onlySpinnakerManaged:
enabled: true
设置s3存储
spinnaker各种配置保存的地方。
s3:
enabled: true
bucket: "spinnaker"
rootFolder: xx
pathStyleAccess: true
endpoint: http://xx:xx
accessKey: "xx"
secretKey: "xx"
做好这一切前置动作之后,就可以直接安装spinnaker了。
$ helm install -n spinnaker stable/spinnaker -f values.yaml --timeout 3600 --namespace spinnaker
-n:spinnaker 指明安装的 Spinnaker 别名为 spinnaker,生成的 Pod 都会以该名称开头。
-f:values.yaml 指明安装时使用 values.yaml 作为默认配置。
–timeout 3600:指明 Helm 安装等待超时时间为 3600s
–namespace:spinnaker 指明本次安装的 Chart 都将在名称为 spinnaker 的命名空间内
若在安装过程中,出现安装失败的情况,可以使用helm delete spinnaker 删除,重新安装。
访问spinnaker
需要为spinnaker创建ingress后,可以访问。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: spinnaker
namespace: spinnaker
annotations:
kubernetes.io/ingress.class: nginx-internet
nginx.ingress.kubernetes.io/ssl-redirect: "true"
spec:
tls:
- secretName: ingress-niucache
hosts:
- spinnaker.xx
- spin-gate.xx
rules:
- host: spinnaker.xx
http:
paths:
- path: /
backend:
serviceName: spin-deck
servicePort: 9000
- host: spin-gate.xx
http:
paths:
- path: /
backend:
serviceName: spin-gate
servicePort: 8084
$ kubectl create -f ingress.yaml
创建完ingress之后就可以用spinnaker.xx域名来访问spinnaker了。
后记
spinnaker在国内安装一直是个大问题,虽然官方提供了完全离线安装的方法,但是比较繁琐,如果可以,还是建议halyard增加代理,镜像换成我们自己镜像仓库的这种安装方式。本文只起一个抛砖引玉的作用,大家若有其他更好的方式,也欢迎一起来讨论。
猜你喜欢
- 2024-10-18 管理需要大规模部署的微服务:您需要Spinnaker
- 2024-10-18 使用 Spinnaker 部署应用程序(spinnaker安装)
- 2024-10-18 8. 玩转树莓派——使用Helm安装Spinnaker
- 2024-10-18 Spinnaker Support收购多布勒咨询公司
- 2024-10-18 澳洲拼写比赛9岁华裔女童夺冠:爱读小说勤练习
- 2024-10-18 85岁老太拒绝平凡退休生活,她尝试各种极限运动
- 2024-10-18 英老太拒绝平凡退休生活,丈夫死后1年,她尝试各种极限运动
- 2024-07-11 潜水表里的王者——青铜款(潜水表是什么)
- 2024-07-11 Spinnaker强化Kubernetes自动化部署,不再需要操作复杂Manifests
- 2024-07-11 Sipcam Agro在美国推出新款甜菜杀菌剂Miramar(甲基硫菌灵)和Spinnaker
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)