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
    • 最新
    • 标签
主页 / server / 问题

问题[consul](server)

Martin Hope
uday
Asked: 2021-07-13 04:46:43 +0800 CST

如何配置 consul 从 Ingress 网关访问网页

  • 0

我正在尝试为部署在 AKS 中的领事配置入口网关。

根据他们的文档,我创建了一个示例部署和入口网关。

yaml 文件:github

kubectl apply -f static-app/

我将静态应用服务从 CluserIP 更改为 LoadBalancer 并且可以使用http://<LB_IP>

但是,使用入口网关,我只能通过添加以下标头来访问:

curl -H "Host: static-server.ingress.consul" "http://<IG_IP>:8080"

如果我尝试不使用标题,则不会获取页面。

关于如何使其在没有标题的情况下工作的任何建议,以便我可以将其用于我的主要应用程序。

部署后,我可以在 consul 窗口中看到并使用 ingress-gateway 获取 IP 地址

service kubernetes aks consul
  • 1 个回答
  • 440 Views
Martin Hope
Spack
Asked: 2021-01-29 08:44:17 +0800 CST

Nomad 节点从 Consul 中移除其他服务

  • 1

我有两个节点 Nomad 集群和一个 Consul 实例,以便作业可以注册要连接的服务。

但是,这些服务会不断同步和取消注册。这是我从领事日志中得到的:

2021-01-26T14:49:59.174Z [INFO]  agent: Synced check: check=_nomad-check-dc23801467b8a65a4fd82311c2606724a180065c
2021-01-26T14:50:00.072Z [INFO]  agent: Synced check: check=_nomad-check-1783c554d9ee0a25d52532f4178c392e931e4bb1
2021-01-26T14:50:04.511Z [INFO]  agent: Synced service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:50:09.962Z [INFO]  agent: Deregistered service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:50:34.554Z [INFO]  agent: Synced service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:50:39.984Z [INFO]  agent: Deregistered service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:51:04.589Z [INFO]  agent: Synced service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin
2021-01-26T14:51:10.009Z [INFO]  agent: Deregistered service: service=_nomad-task-e8d2b77b-3bf5-96c1-8323-63b6151e2cf3-lb0-lb0-admin-admin

两个节点都以相同的配置启动。但是,当我查看TRACE级别的日志时,我有以下内容:

节点A:

2021-01-28T15:58:55.519+0100 [DEBUG] consul.sync: sync complete: registered_services=3 deregistered_services=1 registered_checks=0 deregistered_checks=0

节点B:

2021-01-28T15:58:59.037+0100 [DEBUG] consul.sync: sync complete: registered_services=1 deregistered_services=3 registered_checks=0 deregistered_checks=0

事实上,NodeA运行了 3 个作业,而NodeB运行了 1 个作业。似乎两个节点都在恢复另一个节点所做的更改。

Name               Address       Port  Status  Leader  Protocol  Build  Datacenter  Region
NodeA              198.51.100.1  4648  alive   false   2         1.0.2  us1         us
NodeB              198.51.100.2  4648  alive   true    2         1.0.2  us1         us

我是否错过了配置中的某些内容?如何防止这种情况?

cluster consul nomad
  • 1 个回答
  • 210 Views
Martin Hope
Zeitounator
Asked: 2020-09-16 06:30:05 +0800 CST

领事脚本处理程序标准输出未按记录显示在日志中

  • 0

我正在编写一个脚本,用作领事的观察者配置中的处理程序。

类型处理程序的文档script指出:

可执行处理程序从标准输入读取 JSON 调用信息。[...] 写入标准输出的任何内容都会被记录下来。

基于此,我配置了一个脚本处理程序来监视 ak/v 事件:

  "watches": [
    {
      "type": "key",
      "key": "some_key",
      "handler_type": "script",
      "handler": "/opt/consul/script/key_handler.sh"
    }
  ]

并相应地创建了脚本

#!/bin/bash
read event_payload
echo "The value of the key is $(echo $event_payload | jq -r .Value | base64 -d)"

我更改了some_keyconsul k/v 存储中的值,并希望在日志中的某处看到 stdout 输出。Consul 被配置为使用信息级别登录文件和系统日志。这是配置文件的相关部分:

{
    "log_level": "INFO",
    "enable_syslog": true,
    "log_file": "/var/log/consul/",
    "log_rotate_duration": "24h",
    "log_rotate_max_files": 7
}

我查看了系统日志(即journalct -u consul -f)和领事当前日志文件(即tail -f $(ls -trd /var/log/consul/* | tail -1)。两个日志设施都正常并显示当前的领事活动。但我找不到任何脚本输出的痕迹。

如果我修改脚本并将输出重定向到任意文件,我可以找到我期望的输出,因此脚本肯定可以完成它的工作。

我是否错过了配置中阻止这些日志显示的任何内容?

consul
  • 1 个回答
  • 246 Views
Martin Hope
halfer
Asked: 2020-04-11 09:08:30 +0800 CST

是否还有理由将 Consul 与现代(“集成”)Docker Swarm 一起使用?

  • 2

我过去做过一点 Docker Swarm,它非常简单——在一个节点上创建一个 Swarm Manager,在另外两个节点上创建 Swarm Workers,坚持使用一个 Manager。我想了解更多关于 Swarm 的信息,因此我正在关注 Pluralsight 上 Nigel Poulton 的视频系列“Docker Swarm:本地 Docker 集群”。

然而,这些视频比我两年前的 Swarm 体验要复杂得多,可能是因为它们运行在旧(“独立”)版本的 Swarm 上。我想问一个澄清的问题,看看我现在学习的材料是否过于过时而不值得。(我将在下面描述视频课程的内容,因此无需熟悉即可回答问题)。

这个视频系列,现在已经四岁了,展示了如何:

  • 安装一个高可用的Discovery Service(支持Consul、Etcd和ZooKeeper,作者选择Consul)。它使用progrium/consul映像,截至今天已经五年没有更新了
  • 在 Consul 服务器上设置三个 Swarm Manager 节点
  • 设置三个 Swarm Worker 节点,同时安装 Consul 客户端

作者承认这一切都相当复杂,并暗示,在拍摄视频时,核心 Docker 将来可能会简化这些东西。他说(构建您的 Swarm 集群 -> 安装 HA 发现服务 -> 5:39):

我什至会放出一个狂野的平底船,在某些时候,Sw​​arm 甚至可能不需要我们做任何这种发现后端手工制作。只是因为这有点痛苦,如果我知道 Docker 的人的一件事,那就是他们全心全意地为我们提供这种流畅、轻松的 Docker 体验,而这部分并不是此时此刻。

如果我没看错的话,这个功能似乎就是实际发生的事情。从手册:

您正在查看旧版独立 Swarm 的文档。这些主题描述了独立的 Docker Swarm。在 Docker 1.12 及更高版本中,Swarm 模式与 Docker Engine 集成。大多数用户应该使用集成的 Swarm 模式。

诚然,我之前使用 Swarm 的经验只使用了一个 Manager,但据我了解,只需使用docker swarm join-token.

那么对于我的问题:Docker Swarm 的这一特性演变让我想知道 Consul 是否为管理 Swarm 本身提供了任何价值。我可以做吗?我是不是该?它是否提供了比集成 raft 共识系统更多的功能?这种学习材料现在有害吗?

(旁白:我看过这个作者的几个视频,它们很棒——如果这个已经过时了,那是他无法控制的。如果材料需要重新拍摄,那就是课程/平台需要安排的业主)。

docker docker-swarm consul
  • 2 个回答
  • 924 Views
Martin Hope
Itai Ganot
Asked: 2020-03-09 07:08:48 +0800 CST

使用 Consul 动态库存作为 Ansible 的库存,想设置特定的 ssh 用户,是怎么做的?

  • 2

我的设置:

网络中的每个物理服务器都安装了 consul-client,我使用 我编辑的consul_dynamic_inventory脚本管理这些服务器,以允许我使用基于 os 主要版本和其他内容的特定分组选项。

例子:

(base) ➜  ansible git:(master) ✗ ansible centos6 -m ping -e ansible_ssh_user=root
Sunday 08 March 2020  16:55:10 +0200 (0:00:00.101)       0:00:00.102 **********
agent-c6-06.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
agent-c6-01.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}
agent-c6-05.node.company.consul | SUCCESS => {
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "ping": "pong"
}

上面的示例是可能的,因为我将/etc/ansible/ansible.cfg“inventory”指令配置为指向该 consul_dynamic_inventory 脚本,因此我不必显式地将“-i inventory_file”添加到命令中。

我的问题:

我想将“ansible_ssh_user=root”添加到默认值,这样我就不必在运行 ansible 时提供该开关。

通常,为了将它添加到所有主机,我会在清单文件中添加:

[all:vars]
ansible_ssh_user=root

但是由于我的库存实际上是一个脚本,我不确定在哪里添加它,因为将它添加到脚本中显然会破坏它的运行。

我尝试在ansible.cfg文件的以下部分添加它:

[defaults]
[inventory]
[ssh_connection]

但无济于事。

我的问题:

添加它的正确位置在哪里?

ansible consul
  • 1 个回答
  • 1163 Views
Martin Hope
Madhur Ahuja
Asked: 2016-06-25 05:56:02 +0800 CST

HAProxy 背后的滚动更新

  • 2

我正在使用一个由在 CentOS 主机上运行的 docker 容器组成的基础设施平台。

  • 通过 docker compose 扩展多个容器。
  • 服务发现的领事。
  • 服务注册的注册器
  • HAProxy 作为负载均衡器
  • 每次添加/删除容器时生成 haproxy 配置的 Consul 模板。

每次我们更新构建时,都会生成新容器并删除旧容器。问题是容器被立即删除,而不考虑容器正在服务的现有请求。理想情况下,我应该有一个信号来标记容器处于维护或排空模式,以便可以服务现有连接,然后先优雅地从 haproxy 中删除,然后再从物理上删除。

有没有人遇到过这个问题,或者通过容器完成了类似的自动缩放工作流。

load-balancing docker haproxy consul
  • 1 个回答
  • 1893 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