AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-108132

Adam C's questions

Martin Hope
Adam C
Asked: 2021-08-19 06:06:00 +0800 CST

如何将 aws-iam-authenticator 与远程 Terraform Cloud Runs 一起使用?

  • 0

我已经成功地将 Terraform 与Kubernetes 提供商一起使用来管理 AWS 中EKS集群上的各个部分和服务。我想使用Terraform Cloud来管理它(并利用好的 Github/VCS 集成)。但是,kubeconfig我为该集群使用的aws-iam-authenticator二进制文件利用 AWS 凭证(以及因此的 IAM 权限)在 AWS 和集群内通过IRSA进行身份验证和授予权限。

Terraform Cloud 实例未aws-iam-authenticator安装二进制文件,因此,尽管它们具有正确的 AWS 凭证,但无法利用这些凭证进行身份验证并与 EKS 集群连接。

使用常规(非云)Terraform 没有这个问题,您只需确保您运行的机器plan/apply具有二进制文件和凭据并且它“正常工作”,我怎样才能让 Terraform Cloud 以同样的方式工作?

amazon-web-services kubernetes terraform amazon-iam
  • 1 个回答
  • 204 Views
Martin Hope
Adam C
Asked: 2021-01-22 07:40:42 +0800 CST

在 Kubernetes 集群中将 kubectl 命令作为 cronjobs 运行会导致连接被拒绝错误

  • 0

当使用来自 kubernetes(基于 EKS)集群内部kubectl的映像运行命令时,我希望该命令能够获取环境变量并连接到本地集群以运行命令。具体来说,我正在使用它在集群上运行一些内务处理,但容器只是出错(并最终进入 crashBackoff 循环)。bitnami/kubectlKUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORTkubernetes cronjobs

容器日志中的错误消息如下:

与服务器 localhost:8080 的连接被拒绝 - 您是否指定了正确的主机或端口?

这localhost:8080特别奇怪,因为它从未使用过,并且在我知道的任何地方都没有配置 - 切换到简单的 shell 命令可以让作业成功运行,但 kubectl 拒绝工作。运行env确认KUBE变量确实被注入并正确设置。最近唯一的变化是将这些作业移动到由terraform kubernetes cronjob 资源管理,而不是直接通过 YAML 文件管理。每个 cronjob 都与具有适当权限的服务帐户相关联,并且仍然在 cronjob 中正确配置。

作为参考,这里是 cronjob 的略微编辑版本:

resource "kubernetes_cron_job" "test_cronjob" {
  provider = kubernetes.region

  metadata {
    name = "test-cronjob"
    namespace = "default"
  }
  spec {
    concurrency_policy = "Allow"
    failed_jobs_history_limit = 5
    schedule = "*/5 * * * *"
    job_template {
      metadata {}
      spec {
        backoff_limit = 2
        parallelism = 1
        completions = 1
        template {
          metadata {}
          spec {
            container {
              name    = "kubectl"
              image   = "bitnami/kubectl"
              command = ["/bin/sh", "-c", <<-EOT
                                            env && echo "test";    
                                            EOT
                                            ]            
                        }
            restart_policy = "OnFailure"
            service_account_name = "sa-test"
          }
        }
      }
    }
  }
}
kubernetes terraform amazon-eks kubectl
  • 1 个回答
  • 770 Views
Martin Hope
Adam C
Asked: 2020-12-01 08:20:50 +0800 CST

在 Windows 上将 WinRM 替换为 OpenSSH,以便与 AWS 上的 Ansible 一起使用

  • 0

目前,在 Windows 上运行扩展构建(基于Packer/ Ansible)时,我们发现 WinRM 经常出现错误以至于无法使用,因此不得不回退到手动运行一些大型构建作业。使用 AWS 中的主机作为构建源(而不是远程)在一定程度上有所帮助,消除了作为错误原因之一的连接性,但是失败的次数过多且代价高昂,因为构建然后从头开始重新启动,即使它们已经已经运行了几个小时。

Ansible文档提到OpenSSH可以使用(风险自负,因为它是实验性的)来配置 Windows 主机来代替WinRM. 但是,在如何设置方面几乎没有给出指导。

除了怀疑ssh可能比WinRM作为 Ansible 的连接方法更可靠之外,ssh在端口 22 上使用将简化我们的一些安全规则,并从连接的角度使 Windows 与我们的 Linux 构建主机保持一致。理想的情况是创建一个可重用的构建作业,以允许我们创建一个基础AMI(来自官方 Windows Server 2019 AMI),作为我们的 Packer/Ansible 作业的新基础。从未OpenSSH在 Windows 上使用过,也没有尝试使用sshAnsible 连接到 Windows,如果有人可以共享一个工作配置或至少是指针,将不胜感激。

windows ssh amazon-web-services ansible packer
  • 1 个回答
  • 1581 Views
Martin Hope
Adam C
Asked: 2020-07-15 13:52:43 +0800 CST

图表安装(或通过 terraform 的 helm_release)总是导致“无法下载 <chart>”

  • 0

直接安装helm图表(使用 helm 3)或使用helm提供程序时terraform,会引发相同的错误,这意味着下载失败,例如:

Error: failed to download "https://agones.dev/chart/stable/agones-1.7.0.tgz" (hint: running `helm repo update` may help)

运行 repo 更新没有效果,删除缓存也没有效果,尝试不同的版本,不同版本的 Helm 3。但是,wget(或类似的)获取图表没有问题,图表的内容看起来正确,甚至当作为本地文件而不是远程下载运行时安装。

helm但是,在 terraform 中的提供程序等需要存储库并且不接受file://作为该定义的协议的情况下,这不能用作解决方法。如何永久修复此问题,并使其再次与 terraform 一起“正常工作”?

kubernetes terraform helm
  • 1 个回答
  • 4964 Views
Martin Hope
Adam C
Asked: 2015-10-29 11:02:00 +0800 CST

如何在 CentOS 中保留 resolv.conf 选项,例如旋转、超时?

  • 12

CentOS 将/etc/resolv.conf定期清除任何手动更改。Linux 中的默认设置在合理时间内故障转移方面很差(每次以相同的顺序查询名称服务器,超时 5 秒,重试 2 次)。

因此,您的第一个 DNSresolv.conf本质上是关键路径。如果它失败了,您可以在故障转移之前查看 10 秒。

这些默认值是可以调整的(参见resolv.conf手册页),但是如何在 CentOS 中永久更改任何更改并通过重新启动等保持不变?

domain-name-system
  • 7 个回答
  • 25357 Views
Martin Hope
Adam C
Asked: 2014-09-02 06:55:28 +0800 CST

如何在 HAProxy 中构建 MongoDB 健康检查?

  • 4

HAProxy 博客上有fastcgi一个二进制运行状况检查的示例。我将如何为 MongoDB 构建一个类似的检查,以便我对其进行更强大的健康检查- 验证服务器是否确实存在并做出响应,而不仅仅是检查端口是否打开?MongoDB

如果健康检查足够通用,可以与各种MongoDB分片组件(配置服务器、、mongos)一起使用,那将很有用mongod。

load-balancing
  • 2 个回答
  • 5293 Views
Martin Hope
Adam C
Asked: 2013-07-10 08:00:36 +0800 CST

如何使用 tcpdump 过滤 MongoDB 副本集心跳?

  • 6

有时,在对副本集的健康状况进行故障排除时,我想专门过滤掉心跳数据包,跟踪它们发出的信息,以及随后的回复(或缺少回复),而没有其他数据之间流动的所有噪音套。

不幸的是,这些数据包的结构与普通命令/查询和响应的结构非常相似。尽管Wireshark有解析器,可以让我接触到 MongoDB 有线协议,但我不能使用 tcpdump 的这种技术从源头过滤掉数据包。

那么,问题来了——如何过滤 tcpdump 中的 MongoDB 副本集心跳?

networking
  • 1 个回答
  • 1674 Views
Martin Hope
Adam C
Asked: 2012-08-17 11:07:48 +0800 CST

LVM、Device-Mapper、Software Raid 和 Block Devices 的预读设置 - 哪个赢了?

  • 34

我一直试图就此找到一个直接的答案,但事实证明这是难以捉摸的。This question and its answer is close,但并没有真正给我我想要的细节。让我们从我认为我知道的开始。

如果你有一个标准的块设备并且你运行sudo blockdev --report你会得到这样的东西:

RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0    500107862016   /dev/sda
rw   256   512  4096       2048    399999238144   /dev/sda1
rw   256   512  1024  781252606            1024   /dev/sda2

现在,您决定将--setra任何分区上使用的默认值 256 更改为 128,它发生在整个块设备上,如下所示:

sudo blockdev --setra 128 /dev/sda1
sudo blockdev --report
RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   128   512  4096          0    500107862016   /dev/sda
rw   128   512  4096       2048    399999238144   /dev/sda1
rw   128   512  1024  781252606            1024   /dev/sda2

这对我来说非常有意义 - 块级设备是设置所在的位置,而不是分区,所以一切都会改变。RA 设置和设备之间的默认关系对我来说也很有意义,通常是:

RA * sector size (default = 512 bytes)

因此,我在上面所做的更改以及默认扇区大小会将预读从 128k 降低到 64k。到目前为止一切都很好。

但是,当我们添加软件 RAID、LVM 和设备映射器时会发生什么?想象一下您的报告看起来像这样:

RO    RA   SSZ   BSZ   StartSec            Size   Device
rw   256   512  4096          0     10737418240   /dev/xvda1
rw   256   512  4096          0    901875499008   /dev/xvdb
rw   256   512  4096          0    108447924224   /dev/xvdj
rw   256   512  4096          0    108447924224   /dev/xvdi
rw   256   512  4096          0    108447924224   /dev/xvdh
rw   256   512  4096          0    108447924224   /dev/xvdg
rw  4096   512  4096          0    433787502592   /dev/md0
rw  4096   512   512          0    429496729600   /dev/dm-0

在这种情况下,我们在 mdadm 创建的 md0 之上有一个设备映射的 dm-0 LVM 设备,它实际上是跨四个设备 xvdg-j 的 RAID0 条带。

md0 和 dm-0 的 RA 设置都是 4096,远高于块设备。所以,这里有一些问题:

  • RA 设置如何向下传递到虚拟块设备链?
  • dm-0 是否胜过一切,因为它是您实际访问的顶级块设备?
  • 会不会lvchange -r对dm-0设备有影响而不显示在这里?

如果它很简单,您正在使用的虚拟块设备的 RA 设置被传递,这是否意味着从 dm-0(或 md0)读取将转换为 4 x 4096 RA 读取?(每个块设备上一个)。如果是这样,那将意味着这些设置会激增上述场景中预读的大小。

然后在弄清楚预读设置实际在做什么方面:

您使用什么,相当于上面的扇区大小来确定虚拟设备的实际预读值:

  • RAID 的条带大小(对于 md0)?
  • 其他一些扇区大小等效?
  • 它是可配置的吗?如何配置?
  • FS 是否起作用(我主要对 ext4 和 XFS 感兴趣)?
  • 或者,如果只是传递,它是否只是顶层设备的 RA 设置乘以实际块设备的扇区大小?

最后,条带大小和 RA 设置之间是否存在任何首选关系(例如)?在这里我在想,如果条带是要从 RAID 设备中取出的最小元素,那么理想情况下,您不希望必须有 2 次磁盘访问才能为最小数据单元提供服务,并且希望使 RA大到足以通过一次访问满足请求。

linux
  • 3 个回答
  • 26045 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve