GitLab在kubernetes集群中运行.Runner无法使用构建工件构建docker镜像.我已经尝试了几种方法来解决这个问题,但没有运气.以下是一些配置片段:
.gitlab-ci.yml
image: docker:latest
services:
- docker:dind
variables:
DOCKER_DRIVER: overlay
stages:
- build
- package
- deploy
maven-build:
image: maven:3-jdk-8
stage: build
script: "mvn package -B --settings settings.xml"
artifacts:
paths:
- target/*.jar
docker-build:
stage: package
script:
- docker build -t gitlab.my.com/group/app .
- docker login -u gitlab-ci-token -p $CI_BUILD_TOKEN gitlab.my.com/group/app
- docker push gitlab.my.com/group/app
Run Code Online (Sandbox Code Playgroud)
config.toml
concurrent = 1
check_interval = 0
[[runners]]
name = "app"
url = "https://gitlab.my.com/ci"
token = "xxxxxxxx"
executor = "kubernetes"
[runners.kubernetes]
privileged = true
disable_cache = …Run Code Online (Sandbox Code Playgroud) 我在GKE k8s 1.9.4上有一个多区域测试设置。每个群集都具有:
kubemcisystem(1vCPU / 2GB RAM)frontend(2vCPU / 2GB RAM)backend(1vCPU / 600Mb RAM)所以这样的东西prometheus-operator,prometheus-server,custom-metrics-api-server并kube-state-metrics连接到一个节点system的标签。
前端和后端Pod分别连接到带有frontend和backend标签的节点(单个Pod到单个节点),请参阅podantiaffinity。
自动缩放backend或frontend缩小容器后,它们的节点将保持不变,因为似乎来自kube-system命名空间的容器(即)heapster。这会导致以下情况:带有frontend/ backend标签的节点在缩减规模后仍保持活动状态,即使没有后端或前端吊舱也是如此。
问题是:如何避免kube-system在节点上创建用于服务应用程序的Pod(如果这确实是理智的,并且可能的话)?
猜猜,我应该对backend和frontend节点使用污点和容差,但是如何将其与HPA和群集内节点自动缩放器结合使用?
我有一个字符串列表(stdin),如下:
1 pineapples
28 apples
16 oranges
8 apples
2 apples
2 oranges
56 pineapples
Run Code Online (Sandbox Code Playgroud)
是否有一种原生的方式(比如sort&uniq -c),我可以合并并将它们总结如下:
38 apples
18 oranges
57 pineapples
Run Code Online (Sandbox Code Playgroud)
喜欢sort |uniq -c做,但不仅仅是出现次数?
我有一个awk来自这个例子的脚本:
awk '/START/{if (x) print x; x="";}{x=(!x)?$0:x","$0;}END{print x;}' file
Run Code Online (Sandbox Code Playgroud)
这是一个带有行的示例文件:
$ cat file
START
1
2
3
4
5
end
6
7
START
1
2
3
end
5
6
7
Run Code Online (Sandbox Code Playgroud)
所以我需要在目标字符串包含end单词时停止连接,因此所需的输出是:
START,1,2,3,4,5,end
START,1,2,3,end
Run Code Online (Sandbox Code Playgroud) 我的kubernetes部署中有一个多容器容器:
对于每个容器,都有一个带有Prometheus出口商的容器。
问题是,如果注释部分每个吊舱仅支持一个端口,如何将这些端口暴露给Prometheus?
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port: 'xxxx'
Run Code Online (Sandbox Code Playgroud)
但我需要这样的东西:
annotations:
prometheus.io/scrape: 'true'
prometheus.io/port_1: 'xxxx'
prometheus.io/port_2: 'yyyy'
prometheus.io/port_3: 'zzzz'
Run Code Online (Sandbox Code Playgroud)
也许还有其他方法可以从多容器容器中抓取所有指标?在此先感谢您提供的任何帮助。
kubernetes ×3
awk ×2
bash ×2
docker ×2
gitlab ×1
instance ×1
monitoring ×1
prometheus ×1
regex ×1
snapshot ×1
templates ×1