问题标签 [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.
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'."]})
kubernetes - 将裸机 kubernetes 集群暴露在互联网上
我正在尝试在裸机专用服务器上设置自己的单节点 kubernetes 集群。我在开发运维方面没有那么丰富的经验,但我需要为我自己的项目部署一些服务。我已经使用juju
和conjure-up kubernetes
over进行了集群设置LXD
。我的集群运行得很好。
我还部署了 Hello world 应用程序以8080
在 pod 内的端口上输出一些 hello,nginx-ingress
并将流量重新路由到指定主机上的此服务。
当我curl localhost
按预期执行时connection refused
,它看起来仍然很好,因为它没有暴露在集群中。当我在端口上kubernetes-worker/0
使用公共地址卷曲时 (我从中获得)10.213.117.136
30450
kubectl 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
解决方案以及在这种情况下通常使用什么。谢谢!
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状态
请有任何建议。我仍然无法解决问题。谢谢。
python - 如何导入“psutil”
我正在尝试psutil
从 python 脚本(.py
文件)中导入和使用。
该.py
文件是juju-charm
图层的一部分。具体来说,它是一个用于从运行的机器command
收集的脚本:metrics
charm-application
现在,当我使用 构建charm-layer
和部署它时juju
,我收到以下错误:
ImportError:没有名为 psutil 的模块
这意味着机器(由 启动juju
)成功调用并调用了该.py
文件。但导入失败psutil
。
我的问题是如何psutil
成功导入?
(如果有任何相关答案,我将非常感谢juju-charm
,但没有必要)
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显示所有约束,没有提及“卷类型”或其他。
有一种方法可以创建新的存储类并在部署后将它们附加到机器/单元,但我想在添加新单元时将其添加为每个应用程序的默认值。
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
?
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 似乎出现了问题,导致我出现上述问题。
有什么建议可以解决这个问题吗?
谢谢
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:
其他更多发现:看起来vnet
juju 在CDK
部署期间创建的大多数 s 都没有运行。我怀疑这是因为apparmor
(基于https://jaas.ai/canonical-kubernetes/bundle/21)
注意:如果您希望在笔记本电脑上本地部署此捆绑包,请参阅替代部署方法下有关 Conjure-Up 的部分。通过 juju 的默认部署将无法正确调整 apparmor 配置文件以支持在 LXD 中运行 kubernetes。这时,它是一个必要的中间部署机制。
另一个新更新:我尝试了 xenial 部署,并注意到/etc/resolv.conf
配置正确,没有问题,但问题仍然存在
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 可以在这里帮助我吗?