k8s不能掛載ceph塊儲存
我是參考 Tony Bai 部落格進行k8s掛載ceph的儲存,但是發現最終pod的狀態一直是ContainerCreating
一、環境說明:
- Tony Bai 是把k8s 和 ceph都部署在那兩臺虛擬機器上
- 我的環境是k8s叢集和ceph儲存叢集分別部署在不同機器上的
ceph儲存叢集環境部署可以參考Tony Bai的,或者網上找很多教程,我這裡只是記錄k8s掛載到ceph塊儲存所遇到的問題。
二、配置檔案
# ceph-secret.yaml
apiVersion: v1
kind: Secret
metadata:
name: ceph-secret
data:
key: QVFEUGpCVlpnRWphREJBQUtMWFd5SVFsMzRaQ2JYMitFQW1wK2c9PQo=
##########################################
# ceph-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: ceph-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
rbd:
monitors:
- 192.168.100.81:6789
pool: rbd
image: ceph-image
keyring: /etc/ceph/ceph.client.admin.keyring
user: admin
secretRef:
name: ceph-secret
fsType: ext4
readOnly: false
persistentVolumeReclaimPolicy: Recycle
##########################################
# ceph-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: ceph-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
##########################################
# ceph-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: ceph-pod1
spec:
containers:
- name: ceph-busybox1
image: 192.168 .100.90:5000/duni/busybox:latest
command: ["sleep", "600000"]
volumeMounts:
- name: ceph-vol1
mountPath: /usr/share/busybox
readOnly: false
volumes:
- name: ceph-vol1
persistentVolumeClaim:
claimName: ceph-claim
三、查詢掛載失敗的原因
檢視物件的狀態
$ kubectl get pv,pvc,pods
NAME CAPACITY ACCESSMODES RECLAIMPOLICY STATUS CLAIM REASON AGE
pv/ceph-pv 1Gi RWO Recycle Bound default/ceph-claim 11s
NAME STATUS VOLUME CAPACITY ACCESSMODES AGE
pvc/ceph-claim Bound ceph-pv 1Gi RWO 10s
NAME READY STATUS RESTARTS AGE
po/ceph-pod1 0/1 ContainerCreating 0 11s
發現ceph-pod1狀態一直是ContainerCreating
檢視pod的event
$ kubectl describe po/ceph-pod1
Events:
FirstSeen LastSeen Count From SubObjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
2m 2m 1 {default-scheduler } Normal Scheduled Successfully assigned ceph-pod1 to duni-node1
6s 6s 1 {kubelet duni-node1} Warning FailedMount Unable to mount volumes for pod "ceph-pod1_default(6656394a-37b6-11e7-b652-000c2932f92e)": timeout expired waiting for volumes to attach/mount for pod "ceph-pod1"/"default". list of unattached/unmounted volumes=[ceph-vol1]
6s 6s 1 {kubelet duni-node1} Warning FailedSync Error syncing pod, skipping: timeout expired waiting for volumes to attach/mount for pod "ceph-pod1"/"default". list of unattached/unmounted volumes=[ceph-vol1]
又到ceph-pod1
所在k8s節點機上檢視kubelet
日誌
$ journalctl -u kubelet -f
May 13 15:09:52 duni-node1 kubelet[5167]: I0513 15:09:52.650241 5167 operation_executor.go:802] MountVolume.SetUp succeeded for volume "kubernetes.io/secret/e38290de-33a7-11e7-b6 52-000c2932f92e-default-token-91w6v" (spec.Name: "default-token-91w6v") pod "e38290de-33a7-11e7-b652-000c2932f92e" (UID: "e38290de-33a7-11e7-b652-000c2932f92e").
203299 May 13 15:10:15 duni-node1 kubelet[5167]: E0513 15:10:15.801855 5167 kubelet.go:1813] Unable to mount volumes for pod "ceph-pod1_default(ef4e99c4-37aa-11e7-b652-000c2932f92e)": t imeout expired waiting for volumes to attach/mount for pod "ceph-pod1"/"default". list of unattached/unmounted volumes=[ceph-vol1]; skipping pod
203300 May 13 15:10:15 duni-node1 kubelet[5167]: E0513 15:10:15.801930 5167 pod_workers.go:184] Error syncing pod ef4e99c4-37aa-11e7-b652-000c2932f92e, skipping: timeout expired waiting for volumes to attach/mount for pod "ceph-pod1"/"default". list of unattached/unmounted volumes=[ceph-vol1]
203301 May 13 15:10:17 duni-node1 kubelet[5167]: I0513 15:10:17.252663 5167 reconciler.go:299] MountVolume operation started for volume "kubernetes.io/secret/ddee5d45-3490-11e7-b652-000 c2932f92e-default-token-91w6v" (spec.Name: "default-token-91w6v") to pod "ddee5d45-3490-11e7-b652-000c2932f92e" (UID: "ddee5d45-3490-11e7-b652-000c2932f92e"). Volume is already moun ted to pod, but remount was requested.
四、解決方法
在k8s節點機上安裝ceph common
yum install ceph-common
刪掉 ceph-pod1
重新執行,等一會就看到狀態Running
了
相關推薦
k8s不能掛載ceph塊儲存
我是參考 Tony Bai 部落格進行k8s掛載ceph的儲存,但是發現最終pod的狀態一直是ContainerCreating 一、環境說明: Tony Bai 是把k8s 和 ceph都部署在那兩臺虛擬機器上 我的環境是k8s叢集和ceph儲存叢集分別
叢集基礎之04(部署ceph實驗環境、部署ceph叢集、建立Ceph塊儲存、塊儲存應用、掛載Ceph檔案系統、建立物件儲存伺服器)
目錄 前言: 前言: Ceph簡介 Ceph是一個統一的分散式儲存系統,設計初衷是提供較好的效能、可靠性和可擴充套件性。 Ceph專案最早起源於Sage就讀博士期間的工作(最早的成果於2004年
讓k8s使用nbd掛載ceph的塊儲存
細節決定一切 網上很多文件預設都是隻安裝ceph-common然後直接rbd來跑ceph的rbd。 其實ceph的rbd塊裝置本地
掛載ceph的rbd塊儲存作為本地磁碟塊
Ceph儲存作為塊儲存時,有時候需要將其掛載到本地作為檔案系統使用,為了滿足這樣的需求,請看下面的操作: 在這裡我使用本地的節點來當作客戶端,就是使用我的ceph叢集裡面的192.168.1.220(mon節點)掛載ceph的塊儲存,下面所有的操作都是在我的m
Linux叢集儲存——day4——Ceph分散式儲存搭建、OSD塊儲存、COW快照、RBD儲存映象
Ceph的專有名詞 OSDs 儲存裝置 Monitors 叢集監控元件 MDSs 存放檔案系統的元資料 部署Ceph分散式儲存  
helm部署ceph在k8s上做分散式儲存
先在k8s上機器上拉取映象 docker pull docker.io/ceph/daemon:tag-build-master-luminous-ubuntu-16.04 docker pull docker.io/kolla/ubuntu-source-kubernetes-en
初試 Kubernetes 叢集使用 Ceph RBD 塊儲存
目錄 Kubernetes PersistentVolumes 介紹 環境、軟體準備 單節點使用 Ceph RBD Kubernetes PV & PVC 方式使用 Ceph RBD 測試單節點以及多節點使用 Ceph RBD 1、Kube
ceph儲存 打造高效能高可靠塊儲存系統
塊儲存系統 分散式儲存有出色的效能,可以扛很多故障,能夠輕鬆擴充套件,所以我們使用Ceph構建了高效能、高可靠的塊儲存系統,並使用它支撐公有云和託管雲的雲主機、雲硬碟服務。 由於使用分散式塊儲存系統,避免了複製映象的過程,所以雲主機的建立時間可以縮短到10秒以內,而且雲主機
使用ceph的塊儲存rbd
CEPH 塊裝置 塊是一個位元組序列(例如,一個 512 位元組的資料塊)。基於塊的儲存介面是最常見的儲存資料方法,它們基於旋轉介質,像硬碟、 CD 、軟盤、甚至傳統的 9 磁軌磁帶。無處不在的塊裝置介面使虛擬塊裝置成為與 Ceph 這樣的海量儲存系統互動的理
centos7以NTFS格式化和掛載塊儲存 && mwget
vultr是個非常優秀的雲主機平臺,所有資源都按小時計費,不限cpu,可以動態加IP和硬碟、千兆公網頻寬,價格還超級便宜,最便宜的2.5美金一個月,還支援支付寶,臨時用來跑一些需要大頻寬大流量的批處理實在是太適合不過了。 開通block stora
python通過librados庫通過底層的rados操作ceph的物件儲存和塊儲存
使用python語言呼叫原生介面(呼叫librados庫來操作rados) 也就是下圖中幾種方式中的一種,就是圖中的紅色部分: 首先來說明一下:這個就相當於在客戶端上操作ceph叢集的底層物件儲存rados,我的程式碼是在mon節點上執行的,也就是暫時把
Centos7.4部署ceph塊設備
ceph 在部署塊設備前必須保證Ceph存儲集群處於active+clean狀態。一. 環境準備IP主機名角色10.10.10.20admin-nodeceph-deploy10.10.10.24ceph-clientclient二. 安裝CEPH在管理節點上,通過 ceph-deploy 把 Ce
Ceph 塊設備
file 旋轉 alt .cn reference ron tle last lib 塊是一個字節序列(例如,一個 512 字節的數據塊)。基於塊的存儲接口是最常見的存儲數據方法,它們基於旋轉介質,像硬盤、 CD 、軟盤、甚至傳統的 9 磁道磁帶。無處不在的塊設
kubernetes掛載ceph rbd和cephfs的方法
tor dwr fst policy 使用 cap common k8s == [toc] k8s掛載Ceph RBD k8s掛載Ceph RBD有兩種方式,一種是傳統的PV&PVC的方式,也就是說需要管理員先預先創建好相關PV和PVC,然後對應的deploymen
rancher2 掛載ceph-rbd
使用 base64 star secret tor png monitor yml 加密 一-創建ceph-secret.yml文件 RBD的KEY查看 ceph auth list 復制 client.admin 的key 並使用base64加密 創建cep
通過libvirt使用ceph塊設備
spa mar ron mon virsh ceph protoc log image 1. 創建存儲池[root@ceph1 ~]# ceph osd pool create libvirt-pool 128 128查看剛剛創建的存儲池:[root@ceph1 ~
K8S使用Ceph做持久化存儲
通信 rados posix pos 兼容 加載 服務 創建 內核 一、概述 Cephfs 是一個基於 ceph 集群且兼容POSIX標準的文件系統。創建 cephfs 文件系統時需要在 ceph 集群中添加 mds 服務,該服務負責處理 POSIX 文件系統中的 meta
CentOS-7掛載iscsi網路儲存
// 安裝相關軟體,其中kmod-xfs、xfsprogs為xfs檔案系統的元件。 yum install binutils iscsi-initiator-utils kmod-xfs xfsprogs //啟動iscsi服務 service iscsi start //檢視儲存伺服器的iscsi是
儲存基礎知識(三)塊儲存,檔案儲存,物件儲存
1、塊儲存 典型裝置:磁碟陣列,硬碟 塊儲存主要是將裸磁碟空間整個對映給主機使用的,就是說例如磁碟陣列裡面有5塊硬碟(為方便說明,假設每個硬碟1G),然後可以通過劃邏輯盤、做Raid、或者LVM(邏輯卷)等種種方式邏輯劃分出N個邏輯的硬碟。(假設劃分完的邏輯盤也是5個,每個也是1G,但是
OpenStack雙節點部署—M Cinder(塊儲存服務)
Cinder安裝 一、 資料庫配置 二、 建立服務憑證和API端點 三、 安裝並配置Cinder元件 四、安裝配置儲存節點 五、驗證Cinder服務 一、 資料庫配置 Controller節