在使用gitlab auto devops时,我注意到每个项目都是在其自己的命名空间中创建的,并将服务名称定义为production-auto-deploy。
$kubectl get services --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
app-13094854 production-auto-deploy ClusterIP 10.245.23.224 <none> 5000/TCP 11h
app-13094854 production-postgres ClusterIP 10.245.202.205 <none> 5432/TCP 11h
config-server-13051179 production-auto-deploy ClusterIP 10.245.138.49 <none> 5000/TCP 40m
default kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 11h
gitlab-managed-apps ingress-nginx-ingress-controller LoadBalancer 10.245.200.23 206.189.243.26 80:30888/TCP,443:30962/TCP 11h
gitlab-managed-apps ingress-nginx-ingress-controller-stats ClusterIP 10.245.104.211 <none> 18080/TCP 11h
gitlab-managed-apps ingress-nginx-ingress-default-backend ClusterIP 10.245.202.171 <none> 80/TCP 11h
gitlab-managed-apps tiller-deploy ClusterIP 10.245.31.107 <none> 44134/TCP 11h
kube-system kube-dns ClusterIP 10.245.0.10 <none> 53/UDP,53/TCP,9153/TCP 11h
some-microservice-13093883 production-auto-deploy ClusterIP 10.245.97.62 <none> 5000/TCP 11h
some-microservice-13093883 production-postgres ClusterIP 10.245.245.253 <none> 5432/TCP 11h
此服务名称可以自定义吗?例如,我希望它包含项目名称,从而映射production-auto-deploy、->、app-production-auto-deploy和some-microservice-production-auto-deploy。
我希望这些服务名称唯一的原因是,我正在评估spring-cloud-kubernetes,并且我需要唯一的服务名称来使用feign客户端进行ribbon发现。
此外,我想知道为什么每个项目都有自己的命名空间,这是某种最佳实践吗?可以将auto devops配置为在同一名称空间中部署所有项目吗?
发布于 2019-07-01 22:33:03
此服务名称是否可以自定义?
是的,可以,通过使用custom helm图表。
在简化过程中,服务名称由两个变量(版本名称+图表名称)生成
printf "%s-%s" .Release.Name $name | trimSuffix "-app" ...默认情况下,Auto DevOps使用自己的舵图,源代码可用here。
通过更改Chart.yaml文件(其中包含图表的元数据)中的“名称”,您可以影响最终的服务名称。
还有另一种自定义服务名称的方法:在带有'--set nameOverride=<CUSTOM_SVC_NAME>'的'Deploy.gitlab-ci.yml‘模板中使用'helm upgrade’命令的重写值
另外,我想知道为什么每个项目都有自己的命名空间,这是某种最佳实践吗?可以将auto devops配置为在同一名称空间中部署所有项目吗?
默认情况下,Auto Deploy在应用程序部署期间对K8S命名空间使用此技术和命名约定(如here所述),并且无法根据官方文档进行更改。
您可以尝试使用custom project变量来覆盖它,风险自负:KUBE_NAMESPACE
发布于 2021-09-22 08:18:13
我到处寻找,最终深入到文档中。您所需要做的就是覆盖Autodevops模板。下面是我如何将每个项目的名称空间名称也更改为项目名称本身,因此它将使用项目名称而不是项目段。打开.gitlab-ci.yml并添加以下内容:
include:
- template: Auto-DevOps.gitlab-ci.yml
production:
environment:
url: http://$CI_PROJECT_NAME.$KUBE_INGRESS_BASE_DOMAIN
kubernetes:
namespace: $CI_PROJECT_NAME如果你只想使用环境作为命名空间,你可以在gitlab的"Kubernetes“标签配置中实现。在那里有一个复选框,可以选择这样的选项。
https://stackoverflow.com/questions/56823758
复制相似问题