kubectl top pod --all-namespaces | sort --reverse --key 4 --numeric | head -10给出集群中的顶级 Pod。如何获取每个节点内存消耗最高的 pod?
我们有很多 docker 镜像需要上传到 k8s,它可以工作,但是当我们启动一个新节点时,这个过程可能需要很多时间。
我们尝试更改图像以使用“多阶段”构建,但是这个过程仍然需要很多时间,而且我们没有看到新节点的启动时间发生重大变化。
现在我们尝试以下操作:(但是我们不确定我们会看到多大的影响......)
尝试(尽可能多地)使用相同的 docker 图像 from,例如所有使用 alpine 的图像使用完全相同的版本(3.11)而不是一些使用版本3.10和一些3.10.1和一些3.11等等,这将阻止重用机制码头工人到已经兑现的层......
减少层数,将RUN命令组合为一个而不是多个。(我们需要为许多 docker 文件执行此操作...),不确定 docker 机制将如何帮助实现我们的目标
所有这些改变使用相同版本和减少层的过程可能需要很多时间,我们是在浪费时间还是在那里,或者这是可以减少加载时间的东西?还有其他想法可以帮助我们吗?
我们有很多基于 Golang、NodeJS、java 等的 docker 镜像。
我有一个使用 root 用户运行一个容器的部署。很明显,/data如果我没有volumeMounts定义任何类型的持久卷,那么我的应用程序保存的所有内容都将是短暂的。
我的问题是指定一个emptyDir卷并将其安装到的目的是什么/data?如果我不使用emptyDir之类的奇特功能medium,或者sizeLimit它与根本不使用卷不一样吗?
我对Golang和MongoDB相对较新,遇到了一个日期问题,我似乎可以在MongoDB中插入一个UTC日期,但是当我通过Golang查询时,它会自动转换为本地时间.我希望在没有转换的情况下从UTC的MongoDB中恢复.这是一个简单的例子:
type SampleItem struct {
ObjId bson.ObjectId `bson:"_id,omitempty" json:"-"`
SampleDate time.Time `bson:"sampleDate" json:"sampleDate"`
}
func TestMe() {
var item SampleItem
var items []SampleItem
sess := getSession()
defer sess.Close()
item.SampleDate = time.Now().UTC()
fmt.Printf("%s\n", item.SampleDate)
collection := sess.DB("myCollection").C("sampleItems")
collection.Insert(item)
err := collection.Find(bson.M{}).All(&items)
if err == nil {
fmt.Printf("%s\n", items[0].SampleDate)
}
}
Run Code Online (Sandbox Code Playgroud)
我的输出:
2014-10-12 04:10:50.3992076 +0000 UTC
2014-10-11 23:10:50.399 -0500 CDT
似乎mgo驱动程序可能会自动转换它,因为当我从控制台窗口查询mongodb时,我的日期是UTC.我错过了某个地方的mgo选项吗?
最近,我开始使用PyCharm 2017在 Docker 中进行远程调试,我意识到每个版本的 PyCharmpycharm_helpers都会拉取一个新映像(根据构建使用不同的标签)。
有什么办法可以下载所有图片pycharm_helpers吗?...或者我是否需要下载所有版本并运行它们才能获取图像...(无论你相信与否,我不想做选项 B)。
提前致谢
我正在尝试处理用 Go 编写的 Lambda 函数中的错误。
Lambda 由 API 网关触发。
当我回复200 时,我得到了正确的回复。
但是当我回复500代码时,我总是收到{"message": "Internal server error"}
这是代码的一部分:
func newErrReponse(message string) (events.APIGatewayProxyResponse, error) {
return events.APIGatewayProxyResponse{
Body: message,
StatusCode: 500,
}, errors.New(message)
}
func handleRequest(ctx context.Context, request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error) {
return newErrReponse("some error")
}
func main() {
lambda.Start(handleRequest)
}
Run Code Online (Sandbox Code Playgroud)
我期待“一些错误”,但我总是收到内部服务器错误。我在正文中尝试了 JSON,但这没有帮助。集成请求的类型为 LAMBDA_PROXY。那是默认的。
如何控制错误响应?
我在 CentOS 中设置了 Kubernetes,有 1 个主节点和一个单独的节点。添加了大使 GW 和后来的映射服务。当我尝试使用 GW 映射访问最终服务时,它会以no healthy upstream消息进行响应。
我知道我们可以执行以下命令:
kubectl get pods -l app==<kafka>获取带有 kafka 标签的 podkubectl get pods -l app!=<kafka>获取没有 kafka 标签的 podkubectl get pods -l app=kafka,env=staging获取带有 kafka 和 staging 标签的 Pod但是,如果我想列出所有具有kafka或zookeeper标签的 pod,该怎么办?就像是-l app==kafka||zookeeper。
这甚至可以通过-lkubectl 选项实现吗?
最近 Chrome、Firefox、cURL 等宣布支持 HTTP/3(之前称为 HTTP-over-QUIC)。
您如何从以下变化的角度看待其适应影响:
应用程序(基于网络的、移动的、基于纯套接字的等)
托管基础设施(网络/应用服务器、防火墙、负载均衡器、CDN、路由器、交换机等)和 ISP 等。
安全性(新威胁、漏洞、VAPT 工具的前景等)
拥塞控制
由于我是普罗米修斯新手,我不知道如何表达这个问题:“最后一天每秒处理的最大消息数是多少”。该指标被命名为messages_in_total
我试过
max_over_time(messages_in_total{}[1d])- 但这会返回计数器值的最大值increase(messages_in_total{}[1d])- 但这会返回计数器增加的数字我真正需要的是(伪代码)
将包含绝对 messages_in_total 的范围向量转换为每秒都有一个值的范围向量。
充分利用它
例子:
有任何想法吗?
kubernetes ×5
docker ×2
go ×2
kubectl ×2
ambassador ×1
aws-lambda ×1
http3 ×1
linux ×1
mgo ×1
mongodb ×1
prometheus ×1
pycharm ×1
quic ×1