精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NestOS實例創(chuàng)建與配置

openEuler ? 來源:openEuler ? 作者:openEuler ? 2022-09-01 09:50 ? 次閱讀

2022 年 3 月,在麒麟軟件和 openEuler 社區(qū)的共同努力下,同時支持 x86_64 和 aarch64 架構的云底座操作系統 NestOS 首個正式版發(fā)布。NestOS 如何使用?與我們熟知的通用 OS 有哪些異同?本文將以容器化部署 OpenStack 場景作為實際應用案例,嘗試為大家回答上述問題。

整體方案

在本方案中,我們以 Libvirt 創(chuàng)建 NestOS 虛擬化實例的方式組建集群,通過 Kolla-ansible 部署工具完成 OpenStack 容器化部署。任何可正常運行 Kolla-ansible 的主機均可作為部署節(jié)點,不建議采用 NestOS 作為部署節(jié)點。例如本方案中部署節(jié)點為 openEuler 21.09,而 NestOS 則作為 OpenStack 集群的實際運行環(huán)境,擔當控制、計算、存儲等節(jié)點。為簡化行文描述,后文以單個 NestOS 實例配置進行介紹,實際使用可根據需求添加任意數量 NestOS 實例。

如您是首次了解 NestOS,可首先在 openEuler 22.03 官方文檔中查閱 NestOS 相關用戶指南(https://docs.openeuler.org/zh/docs/22.03_LTS/docs/NestOS/overview.html)

「部署環(huán)境:」

  • 部署節(jié)點 OS:openEuler 21.09
  • NestOS 版本:nestos-22.03.20220329-qemu.x86_64.qcow2
  • OpenStack 版本:Wallaby
  • Kollla-ansible 版本:12.0.0

「提醒:」

  • CPU、內存以及硬盤容量應盡可能大,推薦配置為 4C、8G 和 40G, 若采用本地存儲方案(如 LVM)可添加第二塊硬盤。
  • 建議使用兩塊網卡,其中網卡 1 用于 ssh 連接和訪問外網;網卡 2 用于 Neutron 外部(或公共)網絡,可以是 vlan 或 flat,取決于網絡的創(chuàng)建方式。此網卡應該在沒有 IP 地址的情況下處于活動狀態(tài)。否則,實例將無法訪問外部網絡。

NestOS 實例創(chuàng)建與配置

準備 Ignition 點火文件

結合容器化部署 OpenStack 特定場景環(huán)境配置需求,我們首先需要準備一份供 NestOS 部署使用的 Ignition 點火配置,主要內容分為操作系統基礎配置與 OpenStack 部署環(huán)境初始化兩部分,具體包括:

類別 配置項 用途
passwd 配置 NestOS 登錄用戶和訪問鑒權等相關信息
系統配置 主機名 配置 NestOS 實例主機名
網卡 1 該網卡負責部署、運維 NestOS 實例,提供基礎網絡環(huán)境
時區(qū) 配置 NestOS 實例默認時區(qū)
內核參數 OpenStack 部署環(huán)境需確保開啟部分內核參數
網卡 2 該網卡專用于 Neutron 使用
OpenStack 部署環(huán)境初始化 安裝 python 環(huán)境 OpenStack 部署需 python 環(huán)境支持
關閉 selinux OpenStack 部署環(huán)境需關閉 selinux
時間同步 OpenStack 部署環(huán)境需通過 chronyd 服務同步集群時間
存儲配置 供 OpenStack 集群使用,本地存儲方案必選

ignition 文件被設計為可讀但難以編寫的形式(本質為 json 格式),我們可以先編寫對人友好的 bu 文件(本質為 yaml 格式),然后通過 Butane 工具將其轉化為 ignition 文件。

系統配置 passwd 時,如計劃使用密碼驗證的方式訪問 NestOS 實例,可以使用下述命令生成**${PASSWORD_HASH}**供 bu 文件使用。

opensslpasswd-1-saltyoursalt

我們按照上述表格中的信息將部署 OpenStack 所需的相關配置添加到 bu 文件中,示例如下。如需獲取該文件,可訪問 NestOS 項目倉庫(https://gitee.com/openeuler/NestOS)docs / use_sample / OpenStack / 路徑下獲取。

**注意:「本配置文件示例中,形如」${VALUE}**字段均需根據實際部署情況自行配置。

# Valid options are ['centos', 'debian', 'rhel', 'ubuntu']kolla_base_distro: "centos"# Valid options are [ binary, source ]kolla_install_type: "binary"openstack_release: "wallaby"kolla_internal_vip_address: "{kolla_internal_vip_address}"network_interface: "ens2"api_interface: "{{ network_interface }}"storage_interface: "{{ network_interface }}"tunnel_interface: "{{ network_interface }}"neutron_external_interface: "ens3"neutron_plugin_agent: "openvswitch"keepalived_virtual_router_id: "51"openstack_logging_debug: "True"enable_glance: "yes"enable_haproxy: "yes"enable_keepalived: "{{ enable_haproxy | bool }}"enable_keystone: "yes"enable_mariadb: "yes"enable_memcached: "yes"enable_neutron: "{{ enable_openstack_core | bool }}"enable_nova: "{{ enable_openstack_core | bool }}"enable_rabbitmq: "{{ 'yes' if om_rpc_transport == 'rabbit' or om_notify_transport == 'rabbit' else 'no' }}"enable_chrony: "yes"enable_cinder: "yes"enable_cinder_backup: "yes"enable_cinder_backend_lvm: "yes"enable_cloudkitty: "no"enable_gnocchi: "no"enable_heat: "{{ enable_openstack_core | bool }}"enable_horizon: "yes"enable_horizon: "{{ enable_openstack_core | bool }}"enable_horizon_blazar: "{{ enable_blazar | bool }}"enable_horizon_cloudkitty: "{{ enable_cloudkitty | bool }}"enable_horizon_murano: "{{ enable_murano | bool }}"enable_horizon_neutron_lbaas: "{{ enable_neutron_lbaas | bool }}"enable_horizon_sahara: "{{ enable_sahara | bool }}"enable_horizon_senlin: "{{ enable_senlin | bool }}"enable_horizon_watcher: "{{ enable_watcher | bool }}"enable_ironic: "no"enable_ironic_ipxe: "no"enable_ironic_neutron_agent: "no"enable_kafka: "no"enable_murano: "no"enable_neutron_lbaas: "yes"enable_neutron_sriov: "yes"enable_neutron_qos: "yes"enable_nova_ssh: "yes"enable_openvswitch: "{{ enable_neutron | bool and neutron_plugin_agent != 'linuxbridge' }}"enable_placement: "{{ enable_nova | bool or enable_zun | bool }}"enable_sahara: "no"enable_senlin: "no"enable_swift: "no"enable_tempest: "no"enable_watcher: "no"keystone_token_provider: 'fernet'keystone_admin_user: "admin"keystone_admin_project: "admin"fernet_token_expiry: 86400glance_backend_file: "yes"glance_enable_rolling_upgrade: "no"cinder_volume_group: "cinder-volumes"cinder_backup_driver: "lvm"cinder_backup_share: "lvm"cinder_backup_mount_options_nfs: "lvm"nova_compute_virt_type: "qemu"nova_safety_upgrade: "no"horizon_backend_database: "{{ enable_murano | bool }}"

針對某些相對復雜的初始化配置需求,可以將其編寫為 systemd 托管的 service 服務,如內核參數配置通過寫入配置文件方式傳入參數,再通過 systemd 服務進行應用:

systemd:units:##內核參數配置-name:set-kernel-para-for-openstack.serviceenabled:truecontents:|[Unit]Description=foropenstack
[Service]Type=oneshotRemainAfterExit=yesExecStart=modprobebr_netfilterExecStart=sysctl-p
[Install]WantedBy=multi-user.target

配置編寫完畢后,可通過如下命令將 bu 文件通過 Butane 工具轉換為 ignition 點火文件:

dockerrun--interactive--rmquay.io/coreos/butane:latest--pretty--strictnestos.ign

除本地使用外,也可將生成的 ignition 點火文件以 http 服務等形式供 NestOS 實例部署時遠程訪問,實現集中式批量部署配置。

Libvirt 創(chuàng)建 NestOS 實例

準備好 ignition 文件后,使用 virt-install 創(chuàng)建 NestOS 虛擬化實例,創(chuàng)建指令參考如下,其中 vcpus、ram 和 disk 參數均為最低要求,如有額外需求,可參考 virt-install 手冊自行調整,${IGNITION_FILE_PATH}為 ignition 文件路徑,可以為本地路徑或遠程 URL。

注意:「形如」${VALUE}字段均需根據實際部署情況自行配置。

virt-install--name=${NAME}--vcpus=4--ram=8192--import--network=bridge=virbr0--graphics=none--qemu-commandline="-fw_cfgname=opt/com.coreos/config,file=${IGNITION_FILE_PATH}"--disk=size=40,backing_store=${NESTOS_RELEASE_QCOW2_PATH}--network=bridge=virbr1--disk=size=40

以上就是 Libvirt 創(chuàng)建 NestOS 虛擬化實例的基本流程,可根據需要創(chuàng)建任意數量的 NestOS 實例,也可使用 PXE 方式引導部署在裸金屬服務器。

OpenStack 配置與部署

基于 NestOS 容器化部署 OpenStack 采用了主流的 Kolla-ansible 方案,按上文步驟創(chuàng)建的 NestOS 實例已具備 kolla-ansible 部署所需各項條件,在部署過程中無需任何操作。本章節(jié)所涉及的指令操作均在部署節(jié)點上執(zhí)行。

配置基礎環(huán)境

添加 OpenStack 源

在 openEuler 發(fā)行版中已提供 openstack 適配,如部署節(jié)點采用 openEuler,安裝 OpenStack 相關軟件包前均需安裝 OpenStack 源。

yuminstallopenstack-release-wallaby

安裝 Kolla 和 Kolla-ansible

yuminstallopenstack-kollaopenstack-kolla-ansible

配置 Ansible

將以下選項添加到 Ansible 配置文件**/etc/ansible/ansible.cfg**:

[defaults]host_key_checking=Falsepipelining=Trueforks=100

配置 Kolla Ansible

Inventory

Inventory 是一個 Ansible 文件,可以在其中指定主機及其所屬的組,使用它來定義節(jié)點角色和訪問憑證。

Kolla Ansible 附帶了 all-in-one 和 multinode 示例清單文件。它們之間的區(qū)別在于,前者是部署單節(jié)點 OpenStack,后者則是使用多個節(jié)點。本文將使用 multinode 方式部署。

  1. 在 multinode 文件中編輯環(huán)境的節(jié)點信息,例如:
[control]nestosansible_ssh_user=${USERNAME}ansible_ssh_password=${USERPASSWARD}ansible_become=true
[network]nestos
[compute]nestosansible_ssh_user=${USERNAME}ansible_ssh_password=${USERPASSWARD}ansible_become=true
[monitoring]nestos
[storage]nestos
[deployment]localhostansible_connection=localbecome=true
  1. 檢查配置是否正確,運行:
ansible-i./multinode all-mping

Kolla 密碼

在部署過程中使用的密碼存儲在/etc/kolla/passwords.yml 文件中。初始情況下,該文件中的所有密碼都是空白的,必須手動填充或通過運行隨機密碼生成器來填充:

kolla-genpwd

SourceURL///home/lijian/文檔/公眾號文檔_NestOS 應用:容器化部署 OpenStack/20220704_NestOS 應用案例:容器化部署 OpenStack.docx

Kolla globals.yml

globals.yml 是 Kolla Ansible 的主要配置文件。由于當前 OpenStack 官方容器鏡像還未正式支持 openEuler 系統,因此在部署時將選用 CentOS 容器鏡像。

  1. 鏡像選擇
#Validoptionsare['centos','debian','rhel','ubuntu']kolla_base_distro:"centos"#Validoptionsare[binary,source]kolla_install_type:"binary"#Donotoverridethisunlessyouknowwhatyouaredoing.openstack_release:"wallaby"
  1. 網絡

Kolla Ansible 需要設置一些網絡選項。

network_interface:"eth0"neutron_external_interface:"eth1"kolla_internal_vip_address:"10.1.0.250"
  1. 啟用其他服務

默認情況下,Kolla Ansible 提供了大量的附加服務,可根據需求啟用服務。例如,啟用 cinder 服務:

enable_cinder:"yes"

部署 OpenStack

Kolla Ansible 提供了一個 playbook,能夠以指定的版本安裝所有必需的服務。

下面為使用 multinode 配置的情況,如使用 all-in-one,需進行替換。也可添加-vvv 參數,查看詳細執(zhí)行日志。

  1. 引導服務
kolla-ansible-i./multinodebootstrap-servers
  1. 環(huán)境檢查
kolla-ansible-i./multinodeprechecks
  1. 拉取鏡像
kolla-ansible-i./multinodepull
  1. 執(zhí)行部署
kolla-ansible-i./multinodedeploy

如部署失敗,可執(zhí)行銷毀命令:

kolla-ansibledestroy-i./multinode--yes-i-really-really-mean-it

使用 OpenStack

  1. 安裝 OpenStack CLI 客戶端
yuminstallpython3-openstackclient
  1. OpenStack 需要一個 openrc 文件,其中設置了管理員用戶的憑證。生成該文件:
kolla-ansiblepost-deploy./etc/kolla/admin-openrc.sh
  1. 根據安裝 Kolla Ansible 的方式,執(zhí)行下述腳本創(chuàng)建示例網絡,鏡像等。
kolla-ansible/tools/init-runonce
  1. 通過 ip 地址與 admin-openrc.sh 中提供的 horizon 賬號密碼進行登錄:

f057198c-293b-11ed-ba43-dac502259ad0.png

登錄成功后可看到 OpenStack 的 web 界面:

f06d73d0-293b-11ed-ba43-dac502259ad0.png

更多詳細信息可查閱 OpenStack 官方部署文檔:https://docs.openstack.org/kolla-ansible/wallaby/user/quickstart.html。

總結

NestOS 作為一款在 openEuler 社區(qū) CloudNative Sig 組孵化的云底座操作系統,從以上部署 OpenStack 的流程可以看出,它專為運行容器化工作負載而設計,意在成為計算集群的安全可靠主機。在第一次啟動期間,NestOS 使用 ignition 點火文件配置系統,無論是在云端、虛擬化還是裸金屬,NestOS 始終都從同一個地方開始,我們還可將 ignition 保存于服務器中,供 NestOS 遠程訪問,實現集中式的配置管理,這為大規(guī)模部署集群提供了便利。

NestOS 旨在作為不可變基礎架構進行管理,當機器創(chuàng)建完成后,如想要更新配置不應通過修改/etc 或其他方式進行更改,而應使用新的 ignition 點火文件配置替換機器。這與我們管理容器的方式類似,容器鏡像不會就地更新,而是從頭開始重新構建并重新部署。這種方法可以在負載增加時輕松擴展,只需使用相同的 ignition 配置即可啟動其他計算機。

NestOS 將配置工具 ignition 與 rpm-ostree、OCI 支持、Selinux 強化等技術集成在一起,采用基于雙系統分區(qū)、容器技術和集群架構的設計思路,搭載 iSulad、docker、podman 等主流容器基礎平臺,克服了由于用戶修改系統內容、用戶服務對系統組件依賴,以及系統軟件包升級時不穩(wěn)定中間態(tài)等種種導致升級過程不可靠的因素,最終以一種輕量級、定制化的操作系統呈現出來,可以適應各種不同的基礎設施環(huán)境。

More

openEuler 社區(qū)的 OpenStack 生態(tài)正在逐步完善,期待 Sig-OpenStack 盡快推出 openEuler 社區(qū)支持維護的 OpenStack 容器鏡像。未來 NestOS 項目也計劃與 Sig-OpenStack 緊密合作,推出更加適用于 NestOS 部署方式的部署工具,不僅如此,我們也會推出特定于 OpenStack 場景使用的 NestOS 集成定制版本,減少冗余軟件包,在降低操作系統基座底噪的同時減少暴露攻擊面,實現更便捷、更高效地部署。

「聯系我們」

NestOS 項目官方倉庫:https://gitee.com/openeuler/NestOS

您也可通過 openEuler 社區(qū) sig-cloudnative 與 sig-K8sDistro 聯系我們。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    6747

    瀏覽量

    123204
  • 容器
    +關注

    關注

    0

    文章

    494

    瀏覽量

    22046
  • OpenStack
    +關注

    關注

    1

    文章

    69

    瀏覽量

    18898

原文標題:NestOS應用案例:容器化部署OpenStack

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用 ESS SDK 快速創(chuàng)建實例規(guī)格伸縮配置

    摘要: ESS 伸縮配置定義了用于彈性伸縮的 ECS 實例配置信息,包含了實例規(guī)格、網絡、安全組、帶寬等配置信息,您可靈活地搭配這些
    發(fā)表于 12-26 14:39

    阿里云ECS開放批量創(chuàng)建實例接口,實現彈性資源的創(chuàng)建

    摘要: 為了更方便的實現彈性的資源創(chuàng)建,方便用戶一次運行多臺ECS按量實例來完成應用的開發(fā)和部署,阿里云開放了ECS的批量創(chuàng)建實例接口RunInstances,可以單次最多
    發(fā)表于 03-05 17:40

    ESS控制臺發(fā)布新功能:創(chuàng)建實例規(guī)格的伸縮配置

    類似于備選模式而非隨機模式。最佳實踐這里就現有彈性伸縮ESS所支持的特性,推薦在創(chuàng)建伸縮組以及伸縮配置時,同時采用創(chuàng)建多可用區(qū)專有網絡伸縮組以及創(chuàng)建
    發(fā)表于 04-08 11:29

    基于 openEuler 22.09 版本構建的 NestOS 全新發(fā)布!

    、Xen、Lvc、Docker 等虛擬機軟件或容器。目前,NestOS 已支持容器化部署 OpenStack。NestOS 旨在作為不可變基礎架構進行管理,當機器創(chuàng)建完成后,如想要更新配置
    發(fā)表于 10-10 10:49

    創(chuàng)建配置數據源

    JAVA教程之創(chuàng)建配置數據源,很好的JAVA的資料,快來學習吧。
    發(fā)表于 04-12 17:41 ?6次下載

    TIDDR3的配置流程使用實例講解

    本文的主要內容介紹的是TI的DDR3的配置流程使用實例講解
    發(fā)表于 04-24 10:16 ?9次下載
    TIDDR3的<b class='flag-5'>配置</b>流程使用<b class='flag-5'>實例</b>講解

    創(chuàng)建ADuCM302x的調試配置

    創(chuàng)建ADuCM302x處理器系列的調試配置指南
    的頭像 發(fā)表于 06-06 01:45 ?2953次閱讀

    如何使用Vivado Device Programmer創(chuàng)建配置存儲設備

    了解如何使用Vivado Device Programmer創(chuàng)建配置配置存儲設備。 首先,我們將學習如何設置正確的比特流屬性并生成配置存儲器文件。
    的頭像 發(fā)表于 11-22 07:11 ?7571次閱讀

    使用SQL語句創(chuàng)建數據庫的實例詳細說明

      本文檔的主要內容詳細介紹的是使用SQL語句創(chuàng)建數據庫的實例詳細說明。
    發(fā)表于 11-07 14:35 ?19次下載

    labview讀寫配置文件實例分享

    labview讀寫配置文件實例分享
    發(fā)表于 11-01 16:05 ?45次下載

    NestOS基于歐拉開源的云底座操作系統

    ./oschina_soft/gitee-NestOS.zip
    發(fā)表于 05-13 09:46 ?3次下載
    <b class='flag-5'>NestOS</b>基于歐拉開源的云底座操作系統

    基于NestOS新版本的特性

    2022 年 9 月,在麒麟軟件和歐拉開源社區(qū)開發(fā)者的共同努力下,基于 openEuler 22.09 版本構建的 NestOS 全新發(fā)布!大家可在 NestOS 官網獲取鏡像(nestos.openeuler.org)。
    的頭像 發(fā)表于 10-08 16:18 ?908次閱讀

    編寫一個創(chuàng)建模塊dut實例的測試平臺

    編寫一個創(chuàng)建模塊dut實例(具有任何實例名稱)的測試平臺,并創(chuàng)建一個時鐘信號來驅動模塊的clk輸入。時鐘周期為 10 ps。時鐘應初始化為零,其第一個轉換為 0 到 1。
    的頭像 發(fā)表于 03-13 09:19 ?1331次閱讀

    教程 2:添加特征-自定義配置文件創(chuàng)建

    教程 2:添加特征 - 自定義配置文件創(chuàng)建
    發(fā)表于 03-15 19:39 ?0次下載
    教程 2:添加特征-自定義<b class='flag-5'>配置</b>文件<b class='flag-5'>創(chuàng)建</b>

    西門子博途:創(chuàng)建實例數據塊

    有三種方法可以創(chuàng)建實例數據塊: 當第一次調用FB時,用戶指定應該使用的FB的實例DB。這將打開一個對話框,在該對話框中可以手動指定符號名稱,如果需要,還可以指定實例DB的數量。
    的頭像 發(fā)表于 12-25 11:10 ?861次閱讀
    西門子博途:<b class='flag-5'>創(chuàng)建</b><b class='flag-5'>實例</b>數據塊