首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gitlab auto devops的唯一服务名称

gitlab auto devops的唯一服务名称
EN

Stack Overflow用户
提问于 2019-06-30 17:25:37
回答 2查看 280关注 0票数 1

在使用gitlab auto devops时,我注意到每个项目都是在其自己的命名空间中创建的,并将服务名称定义为production-auto-deploy

代码语言:javascript
复制
$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-deploysome-microservice-production-auto-deploy

我希望这些服务名称唯一的原因是,我正在评估spring-cloud-kubernetes,并且我需要唯一的服务名称来使用feign客户端进行ribbon发现。

此外,我想知道为什么每个项目都有自己的命名空间,这是某种最佳实践吗?可以将auto devops配置为在同一名称空间中部署所有项目吗?

EN

回答 2

Stack Overflow用户

发布于 2019-07-01 22:33:03

此服务名称是否可以自定义?

是的,可以,通过使用custom helm图表。

在简化过程中,服务名称由两个变量(版本名称+图表名称)生成

代码语言:javascript
复制
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

票数 1
EN

Stack Overflow用户

发布于 2021-09-22 08:18:13

我到处寻找,最终深入到文档中。您所需要做的就是覆盖Autodevops模板。下面是我如何将每个项目的名称空间名称也更改为项目名称本身,因此它将使用项目名称而不是项目段。打开.gitlab-ci.yml并添加以下内容:

代码语言:javascript
复制
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“标签配置中实现。在那里有一个复选框,可以选择这样的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56823758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档