"Kubernetes"(v1.10.2)说我的pod(包含一个容器)使用大约5GB的内存.在容器内部,RSS更像是681MiB.可以解释如何使用以下数据从681MiB到5GB(或者描述如何从容器或在kubernetes中运行此容器的docker主机中省略的另一个命令来弥补差异)?
kubectl top pods说5GB:
% kubectl top pods -l app=myapp
NAME CPU(cores) MEMORY(bytes)
myapp-56b947bf6d-2lcr7 39m 5039Mi
Run Code Online (Sandbox Code Playgroud)
Cadvisor报告了一个相似的数字(可能来自略有不同的时间,所以请忽略小的差异):
container_memory_usage_bytes{pod_name=~".*myapp.*"} 5309456384
5309456384 / 1024.0 / 1024 ~= 5063 ~= 5039
Run Code Online (Sandbox Code Playgroud)
在容器内部,此文件似乎是cadvisor获取其数据的位置:
% kubectl exec -it myapp-56b947bf6d-2lcr7 bash
meme@myapp-56b947bf6d-2lcr7:/app# cat /sys/fs/cgroup/memory/memory.usage_in_bytes
5309456384
Run Code Online (Sandbox Code Playgroud)
容器内的驻留集大小(RSS)不匹配(小于1GB):
meme@myapp-56b947bf6d-2lcr7:/app# kb=$(ps aux | grep -v grep | grep -v 'ps aux' | grep -v bash | grep -v awk | grep -v RSS | awk '{print $6}' | awk '{s+=$1} END {printf "%.0f", s}'); mb=$(expr $kb / 1024); printf …Run Code Online (Sandbox Code Playgroud) 我跑来helm upgrade --install修改我的kubernetes集群的状态,我有时会得到这样的错误:
22:24:34 StdErr: E0126 17:24:28.472048 48084 portforward.go:178] lost connection to pod
22:24:34 Error: UPGRADE FAILED: transport is closing
Run Code Online (Sandbox Code Playgroud)
似乎我不是唯一一个,它似乎发生在许多不同的helm命令.所有这些github问题都有描述或评论提到"丢失连接到pod"或"传输正在关闭"错误(通常两者):
虽然阅读数百个github问题评论可能具有教育意义,但通常切换到stackoverflow的追逐速度更快,而且这个问题似乎还不存在,所以现在就是这样.希望一些快速症状修复,并最终一个或多个根本原因诊断最终在答案中.
基本上我希望我的Jenkinsfile看起来像这样:
@Library('my-descriptive-pipline') _
myPipeline('arg1','arg2','arg3')
Run Code Online (Sandbox Code Playgroud)
然后我的共享库(/vars/descriptivePipeline.groovy)将如下所示:
pipeline {
agent any
options {
skipDefaultCheckout()
}
environment {
}
stages {
stage('stageA') {
steps {
... Do something with arg1, arg2 or arg3
}
}
stage('stageB') {
steps {
... Do something with arg1, arg2 or arg3
}
}
....
Run Code Online (Sandbox Code Playgroud)
我想集中管道配置,所以我不必担心Jenkinsfile蔓延.这是否可以使用声明性管道?
jenkins jenkins-plugins jenkins-pipeline jenkins-shared-libraries