작성
·
185
0
apiVersion: v1
kind: Service
metadata:
name: nginx
labels:
app: nginx
spec:
ports:
- port: 80
name: web
clusterIP: None
selector:
app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: web
spec:
selector:
matchLabels:
app: nginx # .spec.template.metadata.labels 와 일치해야 한다
serviceName: "nginx"
replicas: 3 # 기본값은 1
minReadySeconds: 10 # 기본값은 0
template:
metadata:
labels:
app: nginx # .spec.selector.matchLabels 와 일치해야 한다
spec:
terminationGracePeriodSeconds: 10
containers:
- name: nginx
image: k8s.gcr.io/nginx-slim:0.8
ports:
- containerPort: 80
name: web
volumeMounts:
- name: www
mountPath: /usr/share/nginx/html
volumeClaimTemplates:
- metadata:
name: www
spec:
accessModes: [ "ReadWriteOnce" ]
storageClassName: "my-storage-class"
resources:
requests:
storage: 1Gi
다음과 같이 작성해서 create 했는데,
$ kubectl describe pvc
Name: www-web-0
Namespace: default
StorageClass:
Status: Pending
Volume:
Labels: app=nginx
Annotations: <none>
Finalizers: [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode: Filesystem
Used By: web-0
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal FailedBinding 4m23s (x242 over 64m) persistentvolume-controller no persistent volumes available for this claim and no storage class is set
describe pvc에서 Failed가 나옵니다..
에러 메세지를 찾아봐서 StorageClassName을 = "" 으로 수정해봤는데 같은 에러 메세지가 나오네요.
어디를 확인해봐야할까요?
감사합니다.
답변 2
0
현재 환경은 VM - ubuntu 20.04 에서 작업을 하고 있습니다
1. storage class는 https://rook.io/docs/rook/v1.8/quickstart.html 참고해서, rook을 설치했습니다.
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
rook-ceph-block rook-ceph.rbd.csi.ceph.com Delete Immediate true 4h49m
storageClassName을 비워도 아예 안되는 문제가 있는데, 다시 확인해보니
2. ceph status 를 했을 때, hang이 걸리는 문제가 있습니다.
/var/log/ceph 에도 별 다른 내용이 남지 않는데, 버전을 1.8.5에서 1.7로 다운 그레이드 해서 다시 시도해 보려고 합니다.
0
안녕하세요 강사 최일선입니다.
지금 보내주신 내용에서는 정보가 부족하여 답변드리기 어렵네요. 다음 명령으로 스토리지 클래스가 있는지 확인해보시기 바랍니다. GCP에서 진행하시는 경우에는 스토리지 클래스가 있을 겁니다~
kubectl get sc
PVC 템플릿에 여기서 확인된 sc 이름을 입력하시거나 그 라인을 완전히 지우시면 기본 스토리지 클래스를 사용하게 됩니다.
storageClassName: "my-storage-class"
다시 한 번 시도해보시고 여전히 동작하지 않으시면 get sc 에 대한 결과와 현재 시스템에 대한 설명 추가로 말씀 부탁드리겠습니다.
감사합니다!