k8s使用openebs實現動態持久化儲存

2021-09-19 18:53:58 字數 2055 閱讀 8250

本文章介紹如何使用openebs為k8s提供動態申請pv的功能。iscsi提供底層儲存功能,openebs管理iscsi。目前只支援pv的readwriteonce訪問模式

訪問模式只是能力描述,並不是強制執行的,對於沒有按pvc 宣告的方式使用pv,儲存提供者應該負責訪問時的執行錯誤。例如如果設定pvc的訪問模式為readonlymany,pod掛載後依然可寫,如果需要真正的不可寫,申請pvc是需要指定readonly: true引數

實驗用的vagrantfile

# -*- mode: ruby -*- # vi: set ft=ruby :

env["lc_all"] = "en_us.utf-8"

vagrant.configure("2") do |config|

(1..3).each do |i|

config.vm.define "lab#" do |node|

node.vm.box = "centos-7.4-docker-17"

node.ssh.insert_key = false

node.vm.hostname = "lab#"

node.vm.network "private_network", ip: "11.11.11.11#"

node.vm.provision "shell",

inline: "echo hello from node #"

node.vm.provider "virtualbox" do |v|

v.cpus = 2

v.customize ["modifyvm", :id, "--name", "lab#", "--memory", "3096"]

file_to_disk = "lab#_vdb.vdi"

unless file.exist?(file_to_disk)

# 50gb

v.customize ['createhd', '--filename', file_to_disk, '--size', 50 * 1024]

endv.customize ['storageattach', :id, '--storagectl', 'ide', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', file_to_disk]

endend

endend複製**

安裝配置iscsi
# 安裝 iscsi

yum install iscsi-initiator-utils -y

# 檢視 initiatorname 是否正常配置

cat /etc/iscsi/initiatorname.iscsi

# 啟動檢視狀態

systemctl start iscsid.service

systemctl status iscsid.service

systemctl start iscsi.service

systemctl status iscsi.service

複製**

安裝openebs
# 部署

mkdir openebs && cd openebs

wget

wget

# 檢視 openebs 狀態

kubectl get pods -n openebs -o wide

kubectl get svc -n openebs

kubectl get crd

複製**

# 檢視 storage class

kubectl get sc

# 建立pvc測試

本文**掘金-

k8s使用openebs實現動態持久化儲存

k8s灰度更新 k8s實現灰度發布

灰度發布在實際生產部署中是經常被使用的方式,常規的方法是手動從前端lb 負載均衡 上將後端伺服器摘掉,然後,停服務,最後上傳 完成軟連線更新。在使用ci cd工具時,這個過程變得自動化了,我們只需要通過jenkins這個功能強大的開源持續整合和部署工具,就可以聯合gitlab 或 gogs 來實現自...

K8s部署prometheus監控K8s細節

prometheus 一些配置檔案可以再github上找到。部署 root kube prometheus manifests 目錄下所有檔案 部署 root kube prometheus manifests setup 目錄下所有檔案 要注意的是自己要建立乙個工作空間 如果報錯執行下面語句 部署...

k8s 多租戶 k8s 基礎介紹

備註 1 每乙個pod裡執行著乙個特殊的容器 pause容器,其他容器都是業務容器,這些業務容器共享pause容器的網路棧和volume 邏輯卷 掛載卷。因此他們之間的通訊和資料交換更為高效。2 k8s設計了pod物件,將每個服務程序包裝到相應的pod中,使其成為pod中執行的乙個容器 contai...