1. 程式人生 > >k8s不能掛載ceph塊儲存

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部署cephk8s上做分散式儲存

先在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節