目录:
第一节 多节点OpenStack Charms 部署指南0.0.1.dev223–1--OpenStack Charms 部署指南
第二节 多节点OpenStack Charms 部署指南0.0.1.dev223–2-安装MAAS
第三节 多节点OpenStack Charms 部署指南0.0.1.dev223–3-安装Juju
第四节 多节点OpenStack Charms 部署指南0.0.1.dev223–4-安装openstack
第五节 多节点OpenStack Charms 部署指南0.0.1.dev223–5--使bundle安装openstack
第六节 多节点OpenStack Charms 部署指南0.0.1.dev223–6--配置vault和设置数字证书生命周期
第七节 多节点OpenStack Charms 部署指南0.0.1.dev223–7--juju 离线部署bundle
第八节 多节点OpenStack Charms 部署指南0.0.1.dev223–8--配置 OpenStack
附录 t 多节点OpenStack Charms 部署指南0.0.1.dev223–附录T–OpenStack 高可用性
第九节 多节点OpenStack Charms 部署指南0.0.1.dev223–9--网络拓扑
第十节 多节点OpenStack Charms 部署指南0.0.1.dev223–10–OpenStack 高可用基础架构实际
第十一节 多节点OpenStack Charms 部署指南0.0.1.dev223–11–访问Juju仪表板
第十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–12–OpenStack 配置openstack失败后处理
第十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–13–OpenStack配置高可用后无法登陆openstack dashboard
第十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–14–ssh端口转发解决IDC机房国际线路不良问题
第十五节 多节点OpenStack Charms 部署指南0.0.1.dev299–15–OpenStack 实例高可用
第十六节 多节点OpenStack Charms 部署指南0.0.1.dev299–16–OpenStack基础架构高可用The easyrsa resource is missing. .
第十七节 多节点OpenStack Charms 部署指南0.0.1.dev303–17–修改实例数量等quota上限
第十八节 多节点OpenStack Charms 部署指南0.0.1.dev303–18–backup备份
第十九节 多节点OpenStack Charms 部署指南0.0.1.dev303–19–juju log
第二十节 多节点OpenStack Charms 部署指南0.0.1.dev303–20–控制器高可用性
第二十一节 多节点OpenStack Charms 部署指南0.0.1.dev303–21–控制器备份和还原
第二十二节 多节点OpenStack Charms 部署指南0.0.1.dev223–22-- Resource: res_masakari_haproxy not running
第二十三节 多节点OpenStack Charms 部署指南0.0.1.dev223–23-登录openstack-dashboad,SSLError(SSLCertVerificationError
第二十四节 多节点OpenStack Charms 部署指南0.0.1.dev223–24-Resource: res_masakari_f8b6bde_vip not running
第二十五节 多节点OpenStack Charms 部署指南0.0.1.dev223–25–rsyslog 日志服务器构建实际
第二十六节 多节点OpenStack Charms 部署指南0.0.1.dev223–26–跨model 建立关系构建rsyslog 日志服务器构建实际
第二十七节 多节点OpenStack Charms 部署指南0.0.1.dev223–27–Charm Hook
第二十八节 多节点OpenStack Charms 部署指南0.0.1.dev223–28–Command run
第三十节 多节点OpenStack Charms 部署指南0.0.1.–30–参考体系结构—Dell EMC硬件上的Canonical Charmed OpenStack(Ussuri)
第三十一节 多节点OpenStack Charms 部署指南0.0.1.–31–vm hosting-1
第三十二节 多节点OpenStack Charms 部署指南0.0.1.–32–vm hosting-2-VM host networking (snap/2.9/UI)
第三十三节 多节点OpenStack Charms 部署指南0.0.1.–33–vm hosting-3-Adding a VM host (snap/2.9/UI)
第三十四节 多节点OpenStack Charms 部署指南0.0.1.–34–vm hosting-4-VM host存储池和创建和删除vm (snap/2.9/UI)
第三十五节 多节点OpenStack Charms 部署指南0.0.1.–35–Command export-bundle备份opensack并重新部署openstack
第三十六节 多节点openstack charms 部署指南0.0.1-36-graylog实际-1
第三十七节 多节点openstack charms 部署指南0.0.1-37-graylog实际-2
第三十八节 多节点openstack charms 部署指南0.0.1-38-graylog实际-3
第三十九节 多节点openstack charms 部署指南0.0.1-39-graylog-4-filebeat
第四十节 多节点openstack charms 部署指南0.0.1-40-prometheus2
参考文档:
使用 Graylog 和 Prometheus 监视 Kubernetes 集群
Apache2
Elasticsearch #49
Graylog #47
Charm Helpers
根据Graylog #47,进行了graylog的部署如下:
先在maas上配置一个tag为graylog的待部署服务器节点。
juju add-machine --constraints tags=graylog --series focal --debug
juju deploy cs:~graylog-charmers/graylog --to lxd:0 --series focal --debug
juju run-action --wait graylog/X show-admin-password
juju deploy cs:~mongodb-charmers/mongodb --to lxd:0 --series focal --debug
juju relate graylog:mongodb mongodb:database
juju deploy cs:~elasticsearch-charmers/elasticsearch --to lxd:0 --series focal --debug
juju relate graylog:elasticsearch elasticsearch:client
部署完毕后,juju status
:
juju status
Model Controller Cloud/Region Version SLA Timestamp
graylog maas-controller mymaas/default 2.8.10 unsupported 11:50:11+08:00
App Version Status Scale Charm Store Channel Rev OS Message
apache2 unknown 1 apache2 charmstore 35 ubuntu
elasticsearch 5.6.16 blocked 1 elasticsearch charmstore 49 ubuntu elasticsearch service not running
filebeat 6.8.15 active 1 filebeat charmstore 33 ubuntu Filebeat ready.
graylog 2.5.1 active 1 graylog charmstore 47 ubuntu Ready with: elasticsearch, mongodb
mongodb 3.6.8 active 1 mongodb charmstore 59 ubuntu Unit is ready
Unit Workload Agent Machine Public address Ports Message
apache2/0* unknown idle 0/lxd/0 10.0.3.104
filebeat/0* active idle 10.0.3.104 Filebeat ready.
elasticsearch/0* blocked idle 0/lxd/1 10.0.3.105 9200/tcp elasticsearch service not running
graylog/0* active idle 0/lxd/3 10.0.3.107 9000/tcp,9001/tcp Ready with: elasticsearch, mongodb
mongodb/0* active idle 0/lxd/2 10.0.3.106 27017/tcp,27019/tcp,27021/tcp,28017/tcp Unit is ready
Machine State DNS Inst id Series AZ Message
0 started 10.0.9.2 game-burro focal default Deployed
0/lxd/0 started 10.0.3.104 juju-efd26c-0-lxd-0 focal default Container started
0/lxd/1 started 10.0.3.105 juju-efd26c-0-lxd-1 focal default Container started
0/lxd/2 started 10.0.3.106 juju-efd26c-0-lxd-2 focal default Container started
0/lxd/3 started 10.0.3.107 juju-efd26c-0-lxd-3 focal default Container started
发现elasticsearch service is not running.
处理过程如下:
最开始处理方法:
ssh到elasticsearch/0,并重启服务。
juju ssh elasticsearch/0
sudo systemctl restart elasticsearch.service
然后juju status发现还是elasticsearch service is not running.
然后想起以前用过的juju run命令,试了下:
juju run --unit elasticsearch/0 "hooks/start"
输出:
PLAY [localhost] ***************************************************************
TASK [Gathering Facts] *********************************************************
ok: [localhost]
TASK [Open ES Port when exposed] ***********************************************
changed: [localhost]
TASK [Start ElasticSearch] *****************************************************
changed: [localhost]
TASK [Set exit user messaging.] ************************************************
changed: [localhost]
PLAY RECAP *********************************************************************
localhost : ok=4 changed=3 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
/var/lib/juju/agents/unit-elasticsearch-0/charm/hooks/charmhelpers/contrib/templating/contexts.py:121: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
existing_vars = yaml.load(existing_vars_file.read())
开始juju status ,
elasticsearch 5.6.16 active 1 elasticsearch charmstore 49 ubuntu Ready
但是过了一会儿,还是:
Unit Workload Agent Machine Public address Ports Message
elasticsearch/0* blocked idle 0/lxd/1 10.0.3.105 9200/tcp elasticsearch service not running
等配置完了graylog再看看。
根据资料,严重怀疑是elasticsearch 资源不够。
20210527更新:
elasticsearch还是服务不运行,查了下源码中hooks.py,
其中相关段落如下:
@hooks.hook("update-status")
def update_status():
"""Handle update-status hook."""
hookenv.log("Updating status.")
if charmhelpers.core.host.service_running("elasticsearch"):
if not check_elasticsearch_health():
state = "blocked"
message = (
"elasticsearch is reporting problems with local host "
"- please check health"
)
else:
state = "active"
message = "Unit is ready"
else:
state = "blocked"
message = "elasticsearch service not running"
hookenv.status_set(state, message)
这段程序调用了charmhelpers.core.host的service_running,目的是确认elasticsearch程序是否运行,如果没运行,则输出state = “blocked”,message =“elasticsearch service not running”。如果运行了,则需检测elasticsearch的健康性,如果健康,则输出state = “active” message = “Unit is ready”。如果不健康,则输出 state = “blocked” message = ( "elasticsearch is reporting problems with local host " “- please check health”
看来还是需要从资源不够这方向来解决下:
变更部署方法,首先在裸机上安装elasticsearch,然后在容器上部署graylog和mongodb。
juju deploy cs:elasticsearch --constraints tags=rsyslog --series focal --debug
juju deploy cs:graylog-47 --to lxd:0 --series focal --debug
juju deploy cs:mongodb --to lxd:0 --series focal --debug
juju run-action --wait graylog/X show-admin-password
juju relate graylog:mongodb mongodb:database
juju relate graylog:elasticsearch elasticsearch:client
状态如下:
juju status
Model Controller Cloud/Region Version SLA Timestamp
graylog maas-controller mymaas/default 2.8.10 unsupported 12:50:02+08:00
App Version Status Scale Charm Store Channel Rev OS Message
apache2 unknown 1 apache2 charmstore 35 ubuntu
elasticsearch 5.6.16 active 1 elasticsearch charmstore 49 ubuntu Unit is ready
graylog 2.5.1 active 1 graylog charmstore 47 ubuntu Ready with: elasticsearch, mongodb
mongodb 3.6.8 active 1 mongodb charmstore 59 ubuntu Unit is ready
Unit Workload Agent Machine Public address Ports Message
apache2/0* unknown idle 0/lxd/2 10.0.3.108 80/tcp
elasticsearch/0* active idle 0 10.0.9.2 9200/tcp Unit is ready
graylog/0* active idle 0/lxd/0 10.0.3.109 9000/tcp,9001/tcp Ready with: elasticsearch, mongodb
mongodb/0* active idle 0/lxd/1 10.0.3.93 27017/tcp,27019/tcp,27021/tcp,28017/tcp Unit is ready
Machine State DNS Inst id Series AZ Message
0 started 10.0.9.2 game-burro focal default Deployed
0/lxd/0 started 10.0.3.109 juju-4fe877-0-lxd-0 focal default Container started
0/lxd/1 started 10.0.3.93 juju-4fe877-0-lxd-1 focal default Container started
0/lxd/2 started 10.0.3.108 juju-4fe877-0-lxd-2 focal default Container started
看来的确是内存资源不足造成的。