小编Pie*_* B.的帖子

如何使用 eksctl 在配置文件中指定`--asg-access`?

我正在尝试eksctl使用适当的 IAM 权限启用自动缩放在 AWS EKS 集群上创建 Kubernetes 。根据文档

您可以使用 IAM 角色创建一个集群(或现有集群中的节点组),以允许使用集群自动缩放器:

eksctl create cluster --asg-access

我正在努力奔跑

eksctl create cluster --asg-access -f myconfig.yml
Run Code Online (Sandbox Code Playgroud)

但收到此错误:

[?]  cannot use --asg-access when --config-file/-f is set
Run Code Online (Sandbox Code Playgroud)

他们是--asg-access在配置文件中使用的一种方式吗?我尝试在配置文件架构文档中查找相关配置无济于事。

kubernetes amazon-eks eksctl

6
推荐指数
1
解决办法
1744
查看次数

Kubernetes 水平 pod 自动缩放初始延迟?

它们是 Kubernetes 水平 pod 自动缩放中的配置,用于指定在向上/向下扩展之前运行或创建 pod 的最小延迟吗?

例如像这样的东西:

# I am looking for a flag like this
--horizontal-pod-autoscale-initial-upscale-delay=5m0s

# Similar to these existing flags
--horizontal-pod-autoscaler-downscale-delay=2m0s
--horizontal-pod-autoscaler-upscale-delay=2m0s
Run Code Online (Sandbox Code Playgroud)

结果是:

  • 在任何高档发生之前等待 5 分钟
  • 5 分钟后,最多每 2 分钟执行一次降级

我有一种情况,即 Pod 在启动时消耗大量资源进行引导(这是预期的),但我不希望它在此期间扩展,一旦引导完成,它可能有资格进行自动扩展。

horizontal-scaling kubernetes

6
推荐指数
1
解决办法
3158
查看次数

Ansible:定义剧本“默认”变量,优先于角色,但在清单中可覆盖

TL; DR

使用 Ansible,我试图在剧本级别定义某种默认变量 - 让我们称之为剧本默认值- 它优先于角色默认值,但可以被库存清单group_vars/所有变量覆盖。

如何定义某种剧本默认变量,该变量优先于角色默认值,但同时可以被清单(环境)覆盖?


目前 Ansible 2.x 变量优先级如下:

  • 角色默认值
  • 库存文件或脚本组变量
  • 库存组_vars/全部
  • 剧本 group_vars/all

我希望实现的目标是:

  • 角色默认值
  • 剧本默认值
  • 库存文件或脚本组变量
  • 库存组_vars/全部
  • 剧本 group_vars/all

从我之前使用的大多数工具和应用程序来看,在环境级别(开发、测试、QA、产品等)定义的变量优先于“应用程序”变量,而“应用程序”变量本身优先于“外部”组件。那么优先顺序如下:

  • “外部”组件变量(来自 Galaxy 的角色)
  • “应用程序”变量(剧本变量)
  • “环境”变量(开发、测试等)

环境具有最高优先级。但我找不到用 Ansible 重现这种模式的方法。这些事情在 Chef(外部说明书默认值被包装器说明书默认值覆盖)和 Puppet 中很容易,但我找不到使用 Ansible 实现相同目的的方法。

一个简单应用程序的示例

让我们考虑一个由多个与 Web 服务器交互的服务组成的应用程序。这些服务是通用的,并在我组织的其他部分中重复使用,但就我而言,我使用了 apache2。我有这些角色:

  • 阿帕奇
  • 绿色服务
  • 蓝色服务
  • 红色服务

这些默认变量:

# roles/apache/defaults/main.yml
apache_listen_port: 80

# roles/green_service/defaults/main.yml
green_service_port: 80

# roles/blue_service/defaults/main.yml
blue_service_port: 80

# roles/red_service/defaults/main.yml
red_service_port: 80
Run Code Online (Sandbox Code Playgroud)

每个服务都必须知道 apache 端口,这在默认值中表示。如果其他应用程序需要 Nginx 或其他网络服务器的绿色服务,则只需包含相关角色即可。

现在,如果我想在一个或多个环境中将端口从 …

ansible ansible-2.x ansible-inventory

5
推荐指数
1
解决办法
1万
查看次数

ARM 映像的 Docker 构建失败

我尝试在 Travis-CI 上为多个架构构建一个 docker 镜像。这对于 amd64 和 i386 非常有效,但对于 ARM 却失败了。

在顶部的Dockerfile构建{ARCH}/nextcloud:apache是建立在顶部php:7.3-apache-stretch再次使用debian:stretch-slim。所以所有的图像都使用相同的堆栈并且应该做出相似的反应。

.travis.yml

env:
  - TAG=i386     ARCH=i386
  - TAG=amd64    ARCH=amd64
  - TAG=armhf    ARCH=arm32v7
  - TAG=aarch64  ARCH=arm64v8

before_script:
  - docker run --rm --privileged multiarch/qemu-user-static:register --reset

script:
  - docker build --pull --build-arg ARCH=$ARCH -t escoand/nextcloud:$TAG nextcloud
Run Code Online (Sandbox Code Playgroud)

文件

ARG ARCH

FROM ${ARCH}/nextcloud:apache

RUN apt-get update && apt-get install -y supervisor && \
    rm -rf /var/lib/apt/lists/* && \
    mkdir /var/log/supervisord /var/run/supervisord
Run Code Online (Sandbox Code Playgroud)

如前所述,i386 和 amd64 的构建没有问题。ARM 构建已通过第一个 RUN 命令失败: …

linux travis-ci docker multiarch

3
推荐指数
1
解决办法
1689
查看次数

Certbot:打包的自动续订 cron 作业在哪里?

根据Ubuntu 16.04和其他发行版的 Certbot 文档,据说软件包中安装了一个 cron 作业,可以自动更新证书:

您系统上的 Certbot软件包附带一个 cron 作业,该作业将在证书过期之前自动更新您的证书。由于 Let's Encrypt 证书的有效期为 90 天,因此强烈建议利用此功能。

但是,我找不到有关此主题的任何相关文档,并且在按照同一页面(版本 0.19.0)上的 certbot 安装说明进行操作后,我找不到在 crontab 上配置的任何 cron 作业。这个功能真的存在吗?如果是,如何找到并配置它?

注意:我在尝试使用钩子配置自动续订时发现了这篇文档。我可以手动配置 cron 作业,但使用内置的自动更新功能似乎更合适。

cron lets-encrypt certbot

2
推荐指数
1
解决办法
3095
查看次数