问题标签 [juju]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
354 浏览

openstack - 使用 juju 为云创建控制器时出错

sudo juju bootstrap --constraints tags=juju mymaas maas-controller

在 mymaas 上创建 Juju 控制器“maas-controller”正在寻找用于 amd64 的打包 Juju 代理版本 2.3.7 在 mymaas 上启动控制器实例...错误无法引导模型:无法启动引导实例:无法获取节点:意外: ServerError: 400 BAD REQUEST ({"tags": ["No such tag(s): 'juju'."]})

0 投票
1 回答
1008 浏览

kubernetes - 将裸机 kubernetes 集群暴露在互联网上

我正在尝试在裸机专用服务器上设置自己的单节点 kubernetes 集群。我在开发运维方面没有那么丰富的经验,但我需要为我自己的项目部署一些服务。我已经使用jujuconjure-up kubernetesover进行了集群设置LXD。我的集群运行得很好。

我还部署了 Hello world 应用程序以8080在 pod 内的端口上输出一些 hello,nginx-ingress并将流量重新路由到指定主机上的此服务。

当我curl localhost按预期执行时connection refused,它看起来仍然很好,因为它没有暴露在集群中。当我在端口上kubernetes-worker/0使用公共地址卷曲时 (我从中获得)10.213.117.13630450kubectl get all

一切都像一个魅力(这是显而易见的)。当我做

它再次像魅力一样起作用!这意味着入口控制器正在根据host规则成功路由端口 80 以更正服务。在这一点上,我 100% 确定集群可以正常工作。

现在我正在尝试通过 Internet 从外部访问此服务。当我加载时,<server_ip>显然没有加载,因为它位于自己的lxd子网中。因此,我正在考虑将端口80从服务器转发eth0到该 IP。所以我将此规则添加到 iptables

sudo iptables -t nat -A PREROUTING -p tcp -j DNAT --to-destination 10.213.117.136(例如,让我们路由所有内容,而不仅仅是端口 80)。现在,当我在计算机上打开它时http://<server_ip>,它会加载!

所以真正的问题是如何在生产中做到这一点?我应该在 iptables 中设置此转发规则吗?那是正常的方法还是骇人听闻的解决方案,并且我缺少一些“标准”?问题是使用静态worker节点添加此规则将使集群完全静态。IP 最终会改变,我可以为工人移除/添加单位,它会停止工作。我正在考虑编写脚本,该脚本将从以下方式获取此 IP 地址juju

并将其添加到 IP 表中,这比硬编码 IP 更适合解决方案,但我仍然觉得这很棘手,必须有更好的方法。

作为最后一个想法,我可以HAProxy在集群外直接在机器上运行,并将流量转发给所有可用的工作人员。这最终也可能奏效。但是我仍然不知道答案是什么correct解决方案以及在这种情况下通常使用什么。谢谢!

0 投票
1 回答
1255 浏览

openstack-neutron - openstack neutron-gateway - 错误:“无法将网络设备 eno2 添加到 ofproto(设备或资源繁忙)”

我使用本指南 [OpenStack Charms 部署指南] 执行了集群节点安装。(https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/latest/install-maas.html),其中网络类型是平面网络,使用的组件有:

  • 马斯
  • 巨聚
  • 开放堆栈

我的实验室由以下设备组成:

网络计划

在我的实验室中,Openstack 的节点有两个 eth 接口,第一个 (eno2) 用作浮动 IP 的单个外部网络,然后另一个 (eno3) 用于专用网络。

在 Juju gui 我有那个:

我已经打开这篇文章https://ask.openstack.org/en/question/119783/no-route-to-instance-ssh-and-ping-no-route-to-host/来解决关于Ping 和 Ssh 连接到我的实例,但在同一次检查中,我在 neutron-gateway 上看到了这个问题:

也许这是我第一个问题的原因,但我不明白如何解决它。

juju状态

请有任何建议。我仍然无法解决问题。谢谢。

0 投票
0 回答
5067 浏览

python - 如何导入“psutil”

我正在尝试psutil从 python 脚本(.py文件)中导入和使用。

.py文件是juju-charm图层的一部分。具体来说,它是一个用于从运行的机器command收集的脚本:metricscharm-application

现在,当我使用 构建charm-layer和部署它时juju,我收到以下错误:

ImportError:没有名为 psutil 的模块

这意味着机器(由 启动juju)成功调用并调用了该.py文件。但导入失败psutil

我的问题是如何psutil成功导入?

(如果有任何相关答案,我将非常感谢juju-charm,但没有必要)

0 投票
1 回答
163 浏览

amazon-web-services - 在 juju 应用程序中设置根磁盘约束以在 AWS 上使用 ssd 而不是磁

当您在 AWS 上使用 juju 部署 Kubernetes 集群时,所有主节点和工作节点的默认根磁盘都是“磁性”存储。我想将其设置为使用 ssd (gp2)。

我现在找不到任何方法来为每个应用程序(例如 kubernetes-worker)执行此操作 juju get-constrains kubernetes-worker=> cores=2 mem=4096M root-disk=51200M

启动新机器总是给我磁根磁盘。https://docs.jujucharms.com/2.5/en/reference-constraints显示所有约束,没有提及“卷类型”或其他。

有一种方法可以创建新的存储类并在部署后将它们附加到机器/单元,但我想在添加新单元时将其添加为每个应用程序的默认值。

0 投票
1 回答
193 浏览

cloud - Juju 魅力:操作失败:(ImportError:没有名为“charms.reactive”的模块)

作为juju框架的新手,我正在研究简单machine的部署,目的是action在其上执行简单的操作。

所以,我创建了一个charm包,构建它并使用juju. 该包包含一个action名为“touch”,它接受一个字符串(即:文件名)作为输入,并在机器上创建一个具有该名称的文件。

在机器变为“活动”之后,当我使用以下命令列出已部署机器中的操作时:

action在它的描述旁边列出了我的列表。

现在,当执行“触摸”动作时,使用:

我收到以下消息:

使用 ID 排队的操作:d6b39965-9a2c-41c6-8db7-b4060e587033

然后,当我检查动作状态时:

我得到以下信息:

行动:

动作:触摸

完成时间:“2019-05-03 11:56:51”

编号:d6b39965-9a2c-41c6-8db7-b4060e587033

状态:失败

单元:

魅力层/0

然后当我检查动作输出时:

我得到以下信息:

消息:退出状态 1

状态:失败

定时:

完成时间:2019-05-03 11:56:51 +0000 UTC

入队:2019-05-03 11:56:48 +0000 UTC

开始时间:2019-05-03 11:56:51 +0000 UTC

检查日志时使用:

我看到以下输出:

unit-charmLayer-0: 13:23:14 调试 unit.charmLayer/0.touch Traceback(最近一次通话最后):

unit-charmLayer-0: 13:23:14 调试 unit.charmLayer/0.touch 文件“/var/lib/juju/agents/unit-charmLayer-0/charm/actions/touch”,第 6 行,在

unit-charmLayer-0: 13:23:14 DEBUG unit.charmLayer/0.touch from charms.reactive import main, set_flag

unit-charmLayer-0: 13:23:14 调试 unit.charmLayer/0.touch ImportError: No module named 'charms.reactive'

我的问题是为什么我会得到ImportError这个charms.reactive

0 投票
1 回答
1003 浏览

lxc - 无法以 sudo 执行 lxd lxc 命令

在 Ubuntu 19.04 上使用以下命令安装 juju

这也安装了 lxd。当我尝试调用“sudo lxd -h”或“sudo lxc list”或“sudo juju bootstrap”时,我收到以下错误消息

就好像我在没有 sudo 的情况下运行这些命令一样,我得到以下信息

不知道出了什么问题。这就是发生的事情。首先,我能够安装 juju,它按预期工作得很好。后来我使用 devstack 安装了 OpenStack。我使用 ./unstack.sh 和 ./clean.sh 删除了 OpenStack 似乎出现了问题,导致我出现上述问题。

有什么建议可以解决这个问题吗?

谢谢

0 投票
1 回答
1362 浏览

kubernetes - coredns 正在运行但在 conjure-up k8s cdk 后尚未准备好

我已经V1.18.2使用 conjure-up(使用仿生)部署了 Kubernetes(CDK) 更新:完全破坏了上面的环境,然后在这里使用 CDK 包手动重新部署它https://jaas.ai/canonical-kubernetes,相同的 K8S 版本相同操作系统版本(Ubuntu 18.04)没有区别。

正在通过coredns解决/etc/resolv.conf,见configmap下文:

https://kubernetes.io/docs/tasks/administer-cluster/dns-debugging-resolution/#known-issues这里有一个已知问题,而/etc/resolv.conf不是/run/systemd/resolve/resolv.conf

我编辑了coredns配置映射以将其指向,/run/systemd/resolve/resolv.conf但设置被还原。

我也尝试设置kubelet-extra-config{resolvConf: /run/systemd/resolve/resolv.conf},重新启动服务器,没有任何变化:

但是我可以在按照https://kubernetes.io/docs/tasks/administer-cluster/reconfigure-kubelet/kubelet检查配置时看到配置中的更改

这是我在 coredns pod 中遇到的错误:

查看 Kubernetes 服务:

这是coredns部署:

有人可以帮忙吗?

更多信息: K8S SVC 配置正确:

我可以用 --insecure 卷曲两个 IP 地址

描述 EP:

其他更多发现:看起来vnetjuju 在CDK部署期间创建的大多数 s 都没有运行。我怀疑这是因为apparmor(基于https://jaas.ai/canonical-kubernetes/bundle/21

注意:如果您希望在笔记本电脑上本地部署此捆绑包,请参阅替代部署方法下有关 Conjure-Up 的部分。通过 juju 的默认部署将无法正确调整 apparmor 配置文件以支持在 LXD 中运行 kubernetes。这时,它是一个必要的中间部署机制。

另一个新更新:我尝试了 xenial 部署,并注意到/etc/resolv.conf配置正确,没有问题,但问题仍然存在

0 投票
1 回答
1550 浏览

controller - JUJU 引导错误无法引导模型:无法在可用区“默认”中启动引导实例:

我有以下设置:

Openstack Stein 安装有:

  • VMA是 1 个安装了 MAAS 2.7.0 服务器和 JUJU 2.7.6-bionic-amd64 的 VM
  • VMB是用作 JUJU 控制器的 1 个 VM

我将VMB委托到VMA上的 MAAS 服务器上,现在它正在等待部署。

现在,当我尝试在VMB中引导 JUJU 控制器时,出现此错误:

在此处输入图像描述

我想知道为什么会发生这种情况,我的节点位于 MAAS 的默认 AZ 中。

在此处输入图像描述

对这个问题有什么想法吗?

0 投票
2 回答
375 浏览

openstack - Juju vault 在 maas 和 charmed-kubernetes 上部署 openstack/base 时导致问题

我已经在 MaaS 上部署了 openstack/base,如此处所示。在我尝试使用 openstack-integrator 和 vault overlay 部署 charmed-kubernetes 后,我无法在 maas 节点上执行 openstackclient 命令,并且无法识别上传到仪表板的图像,这意味着无法部署 ubuntu charms。例如,当我这样做时,

openstack 目录列表

我明白了

联系https://keystone_ip:5000/v3时未能发现可用的身份版本。试图从 URL 解析版本。连接到https://keystone_ip:5000/v3/auth/tokens的 SSL 异常:HTTPSConnectionPool(host='keystone_ip', port=5000):最大重试次数超出了 url:/v3/auth/tokens(由 SSLError(SSLCertVerificationError( 1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:无法获取本地颁发者证书 (_ssl.c:1108)')))

但是,当我 ssh 进入 keystone 容器时,有一个 keystone_juju_ca_cert.crt 有

颁发者:CN = Vault 根证书颁发机构 (charm-pki-local)

并作为

主题:CN = Vault 根证书颁发机构 (charm-pki-local)

我还尝试通过保管库应用程序中的操作重新颁发证书并刷新机密,但无济于事。

somobody 可以在这里帮助我吗?