使用kolla安裝多節點OpenStack

2021-08-15 08:01:33 字數 3872 閱讀 6386

前言:

長久以來 openstack 部署難、 公升級難的問題經常為人詬病,簡單、便捷、高效的部署公升級方案是所有 openstack 使用者(客戶、雲服務提供商、開發者)的共性剛需。kolla 正是應需而生,它基於社群的最佳實踐,提出了可靠、可擴充套件的生產級別 openstack service containers 部署方式。

簡單來說,kolla 就是充分應用容器特性,實現容器化部署 openstack 服務的 devops 工具。

kolla 顯著的特點是「開箱即用」和「簡易公升級」,前者由編排工具(ansible/kubernetes)提供自動化支撐,後者則完全是 container 的功勞。kolla 追求為每乙個 openstack service 都構建相應的 container,將公升級/回滾的粒度(隔離依賴關係集)降維到 service 或 project 級別,實現公升級/回滾的原子性。假若公升級失敗,則直接啟動 old version container 完成回滾。版本公升級只需三步:

pull new docker image

stop old docker container

start new docker container

除此之外,kolla 還提供了定製化部署拓撲的能力,允許使用者花費更小的學習和試錯成本,逐漸摸索演變出適合自己的部署架構藍圖。

眾所周知,容器技術具有非常優秀的應用部署敏捷性和效率,其中以 docker 和 kubernetes 作為構建容器化應用程式的主要標準,是最受歡迎的容器技術選型。kolla 社群緊貼使用者,將 kolla project 逐漸解耦成為了三個產品。由 kolla 負責構建映象,由 kolla-ansible/kolla-kubernetes 負責部署,而且 kolla-kubernetes 還兼具著容器管理的能力。它們之間既互相配合又能自成一家,松耦合的架構更有利於最大限度的覆蓋使用者多方面需求。

在 queens release,kolla-ansible 開始支援「開發者模式」,這的確是乙個令人興奮的訊息。

支援開發模式。這個對 openstack 的開發者很是方便。以住,開發者可能要通過 devstack 搭建完整的 openstack 來開發,但是部署複雜,難度高。現在 kolla-ansible 已經支援了開發模式。通過配置要開發環境的 dev_mode, 如horizon_dev_mode: true, 那麼 horizon 容器內的**會從物理機上掛載進去,開發者對**修改後,就可以直接看到修改後的效果。十分方便。

from:

99cloud 雷神(kolla ptl)

詳細請參考:

雖然,現在開發模式支援的專案還比較有限,但社團貢獻者已經提交了 blueprint,相信很快就能支援大部分核心專案了。

bp:在本文中,我們以 kolla & kolla-ansible 的組合,介紹如何輕鬆的部署出一套 openstack 環境。

如果是物理機進行安裝,可以採用u盤啟動,在安裝的時候可能出現不能安裝的現象(如不能出現安裝介面),進行如下的處理:

在出現選擇安裝docker 或者kolla介面的時候,按tab鍵。

修改系統引導命令列語句為:

vmlinuz initrd=initrd.img dd linux quit

說明:通過dd命令列出列出當前可用的裝置資訊,找到u盤的裝置資訊比如為/dev/sdb1

再次重新啟動按tab鍵,修改修改系統引導命令列語句為:

vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb1  ..........,需要根據不同的提示修改,還可以修改管理ip和主機名等。

pip install python-glanceclient

6  問題處理

1)如果docker版本衝突,解除安裝原來的版本,重新進行安裝

yum list installed | grep docker

根據查詢結果解除安裝,如

yum -y remove docker-ce.x86_64

用上面命令,可能解除安裝不乾淨,使用以下的命令解除安裝,可能還是解除安裝不乾淨

yum -y remove docker

需要根據安裝的過程提示進行解除安裝

如:yum remove container-selinux-2.36-1.gitff95335.el7.noarch

安裝成功

2) 使用命令列的時候的環境配置檔案

3) 日誌檔案的位置

部署後openstack服務日誌存放目錄/var/lib/docker/volumes/kolla_logs/_data/

4)docker 問題定位

docker exec -it heka bash

docker logs container-name

5)映象檔案的位置經過如下的命令可以查詢

[root@control01 ~]# find / -name e200afd1-231b-4ed5-8c73-b361b71ee1a3

/var/lib/docker/volumes/glance/_data/images/e200afd1-231b-4ed5-8c73-b361b71ee1a3

在目錄/var/lib/docker/volumes/glance/_data/images下。

跟/etc/kolla/glance-api/glance-api.conf中的配置filesystem_store_datadir = /var/lib/glance/images/沒有關係

6)採用kolla安裝的採用的是open vswitch,進行安裝後在主機控制節點上使用ifconfig,沒有預設的三個網橋br-ex,br-int和br-tun,應該使用docker exec -it openvswitch_vswitchd /bin/bash進入到openvswitch容器(如果要退出就:ctrl-d或exit),使用命令ovs-vsctl show檢視,可以看到上述的三個網橋。

br-ext 連線外部網路的網橋

br-int 整合網橋。所有instance的虛擬網絡卡和其他虛擬網路裝置都將連線到該網橋

br-tun 隧道網橋,基於隧道技術的vxlan和gre網路將使用該網橋進行通訊

注意:計算節點上沒有br-ext

可以使用如下的命令

ovs-vsctl list-br 檢視網橋

ovs-vsctl list-ports br-ex  檢視網橋上的埠

可以看出整合網橋和br-ext和br-tun是相連的。

當從從介面上新增網路並新增子網後,dhcp port的埠連線到了br-int,可以在容器裡面看到port的型別為tap,在控制節點用ifconfig命令不能看見。每生成乙個虛擬機器在控制節點上(我的虛擬機器在控制節點)多4個inte***ce。第乙個:tap inte***ce命名為tap***;第二個 :linuxbridege,命名為qbr***;第三個:veph pair 命名為qvb***;第四個:veph pair 命名為qvo***。在openvswitch容器裡面看增加了qvo***連線到了br-int上。上述連線保證了通訊暢通。

7 相關知識

Kolla多節點日誌獲取快捷命令

在部署節點執行以下命令 ansible all i multinode m shell a grep req id r var lib docker volumes kolla logs data nova req id 虛擬機器執行目標操作的id,可使用nova instance action l...

hadoop集群多節點安裝詳解

mv cloudera cdh5.repo etc yum.repo.d 1.2 在各節點安裝對應元件 1.安裝namenode和datanode 在elephant上安裝namenode sudo yum install assumeyes hadoop hdfs namenode 在elepha...

redis單機單節點安裝及單機多節點安裝教程

二 單機多節點安裝 2 建立redis安裝目錄及配置檔案目錄 3 將編譯的redis安裝檔案 bin 放到安裝目錄中 4 建立集群子資料夾及檔案內容 5 修改完成以後,依次啟動各個節點 6 六臺節點啟動完成之後,開始建立集群 7 安裝redis集群管理工具 三 注意事項 cd opt softwar...