本文章介紹如何使用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...