如何通过gitlab CI部署陈旧的Pod(我的意思是非操作)?



我想部署一个应用程序,pod不应该进入运行状态(它应该是非操作的)。当真正需要使用基础设施作为代码(Terraform)时,用户可能会触发此操作。我知道使用kubectl scale -- replicas=0。任何其他线索或信息将不胜感激。

您可以将副本计数保持为0对于部署到你的YAML

或者如果你正在使用Terraform

resource "kubernetes_deployment" "example" {
metadata {
name = "terraform-example"
labels = {
test = "MyExampleApp"
}
}
spec {
replicas = 0
selector {
match_labels = {
test = "MyExampleApp"
}
}
template {
metadata {
labels = {
test = "MyExampleApp"
}
}
spec {
container {
image = "nginx:1.7.8"
name  = "example"
resources {
limits = {
cpu    = "0.5"
memory = "512Mi"
}
requests = {
cpu    = "250m"
memory = "50Mi"
}
}
liveness_probe {
http_get {
path = "/nginx_status"
port = 80
http_header {
name  = "X-Custom-Header"
value = "Awesome"
}
}
initial_delay_seconds = 3
period_seconds        = 3
}
}
}
}
}
}

如果你不想使用Terraform,没有其他的方法可以使用Kubernetes的客户端来实现。

如果您想使用terraform checkoutlocal-exec编辑本地文件

这将调用运行Terraform的机器上的进程,而不是在资源。

resource "aws_instance" "web" {
# ...
provisioner "local-exec" {
command = "echo ${self.private_ip} >> private_ips.txt"
}
}
使用<<p> strong> sedlocal-exec

中的命令或任何其他命令,您可以更新YAML并应用它。 https://www.terraform.io/docs/language/resources/provisioners/local-exec.html

相关内容

  • 没有找到相关文章

最新更新