เจเจธ เจฎเจนเฉเจจเฉ เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจตเจฟเฉฑเจ, 3 เจฎเจ เจจเฉเฉฐ, "เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเฉฑเจ เจตเฉฐเจกเฉ เจเจ เจกเฉเจเจพ เจธเจเฉเจฐเฉเจ เจฒเจ เจชเฉเจฐเจฌเฉฐเจงเจจ เจชเฉเจฐเจฃเจพเจฒเฉ" เจฆเฉ เจเฉฑเจ เจตเฉฑเจกเฉ เจฐเจฟเจฒเฉเจเจผ เจฆเจพ เจเจฒเจพเจจ เจเฉเจคเจพ เจเจฟเจ เจธเฉ -
เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ, Rook เจเฉฑเจ เจธเฉเฉฑเจ เจนเฉ
เจเจธ เจธเจฎเฉเจ เจธเจญ เจคเฉเจ เจตเจฟเจเจธเจค (เจ
เจคเฉ
เจเจฟเฉฑเจชเจฃเฉ: Ceph เจจเจพเจฒ เจธเจฌเฉฐเจงเจค Rook 1.0.0 เจฐเฉเจฒเฉเจเจผ เจตเจฟเฉฑเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเจฌเจฆเฉเจฒเฉเจเจ เจตเจฟเฉฑเจเฉเจ, เจ เจธเฉเจ Ceph Nautilus เจฒเจ เจธเจฎเจฐเจฅเจจ เจ เจคเฉ CephFS เจเจพเจ RGW เจฌเจพเจฒเจเฉเจเจ เจฒเจ NFS เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจฏเฉเจเจคเจพ เจจเฉเฉฐ เจจเฉเจ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค เจฌเฉเจเจพ เจชเฉฑเจงเจฐ เจคเฉฑเจ EdgeFS เจธเจฎเจฐเจฅเจจ เจฆเฉ เจชเจฐเจฟเจชเฉฑเจเจคเจพ เจฆเฉเจเจฟเจเจ เจตเจฟเฉฑเจ เจเฉ เจนเฉเฅค
เจเจธ เจฒเจ, เจเจธ เจฒเฉเจ เจตเจฟเจ เจ เจธเฉเจ:
- เจเจ เจเจธ เจธเจตเจพเจฒ เจฆเจพ เจเจตเจพเจฌ เจฆเฉเจเจ เจเจฟ เจเฉเจฌเจฐเจจเฉเจเจธ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ เจธเฉเจซ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจจ เจฒเจ เจฐเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจฟเจนเฉเฉ เจซเจพเจเจฆเฉ เจฆเฉเจเจฆเฉ เจนเจพเจ;
- เจ เจธเฉเจ เจเจคเจชเจพเจฆเจจ เจตเจฟเฉฑเจ เจฐเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจเจชเจฃเฉ เจ เจจเฉเจญเจต เจ เจคเฉ เจชเฉเจฐเจญเจพเจตเจพเจ เจจเฉเฉฐ เจธเจพเจเจเจพ เจเจฐเจพเจเจเฉ;
- เจเจ เจคเฉเจนเจพเจจเฉเฉฐ เจฆเฉฑเจธเจฆเฉ เจนเจพเจ เจเจฟ เจ เจธเฉเจ เจฐเฉเจ เจจเฉเฉฐ โเจนเจพเจ!โ เจเจฟเจเจ เจเจนเจฟเฉฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจเจธ เจฒเจ เจธเจพเจกเฉเจเจ เจฏเฉเจเจจเจพเจตเจพเจ เจฌเจพเจฐเฉเฅค
เจเจ เจเจฎ เจงเจพเจฐเจจเจพเจตเจพเจ เจ เจคเฉ เจธเจฟเจงเจพเจเจค เจจเจพเจฒ เจธเจผเฉเจฐเฉ เจเจฐเฉเจเฅค
"เจฎเฉเจจเฉเฉฐ เจเฉฑเจ เจฐเฉเจ เจฆเจพ เจซเจพเจเจฆเจพ เจนเฉ!" (เจ เจฃเจเจพเจฃ เจธเจผเจคเจฐเฉฐเจ เจเจฟเจกเจพเจฐเฉ)
เจฐเฉเจ เจฆเฉ เจฎเฉเฉฑเจ เจซเจพเจเจฆเจฟเจเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ เจเจน เจนเฉ เจเจฟ เจกเฉเจเจพ เจธเจเฉเจฐเจพเจ เจจเจพเจฒ เจเฉฑเจฒเจฌเจพเจค เจเฉเจฌเจฐเจจเฉเจเจธ เจตเจฟเจงเฉ เจฆเฉเจเจฐเจพ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค เจเจธเจฆเจพ เจฎเจคเจฒเจฌ เจนเฉ เจเจฟ เจคเฉเจนเจพเจจเฉเฉฐ เจนเฉเจฃ เจธเจผเฉเจ เจคเฉเจ เจเจจเจธเฉเจฒ เจตเจฟเฉฑเจ Ceph เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจ เจฒเจ เจเจฎเจพเจเจกเจพเจ เจฆเฉ เจจเจเจฒ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค
- เจเฉ เจคเฉเจธเฉเจ เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจตเจฟเฉฑเจ CephFS เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ? เจฌเจธ เจเฉฑเจ YAML เจซเจพเจเจฒ เจฒเจฟเจเฉ!
- เจเฉ? เจเฉ เจคเฉเจธเฉเจ S3 API เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเจฌเจเฉเจเจ เจธเจเฉเจฐ เจจเฉเฉฐ เจตเฉ เจคเฉเจจเจพเจค เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเฉ? เจฌเฉฑเจธ เจเฉฑเจ เจฆเฉเจเฉ YAML เจซเจพเจเจฒ เจฒเจฟเจเฉ!
เจฐเฉเจ เจเฉฑเจ เจเจฎ เจเจชเจฐเฉเจเจฐ เจฆเฉ เจธเจพเจฐเฉ เจจเจฟเจฏเจฎเจพเจ เจ
เจจเฉเจธเจพเจฐ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉเฅค เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจเจธ เจจเจพเจฒ เจเฉฑเจฒเจฌเจพเจค เจนเฉเฉฐเจฆเฉ เจนเฉ
เจเจ เจเฉฑเจ เจเจฌเจเฉเจเจ เจธเจเฉเจฐ เจฌเจฃเจพเจเจฃ เจฆเฉ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจจเฉเฉฐ เจตเฉเจเฉเจ, เจเจพเจ เจเจธ เจฆเฉ เจฌเจเจพเจ - CephObjectStoreUser
.
apiVersion: ceph.rook.io/v1
kind: CephObjectStore
metadata:
name: {{ .Values.s3.crdName }}
namespace: kube-rook
spec:
metadataPool:
failureDomain: host
replicated:
size: 3
dataPool:
failureDomain: host
erasureCoded:
dataChunks: 2
codingChunks: 1
gateway:
type: s3
sslCertificateRef:
port: 80
securePort:
instances: 1
allNodes: false
---
apiVersion: ceph.rook.io/v1
kind: CephObjectStoreUser
metadata:
name: {{ .Values.s3.crdName }}
namespace: kube-rook
spec:
store: {{ .Values.s3.crdName }}
displayName: {{ .Values.s3.username }}
เจธเฉเจเฉ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจเจ เจฎเจพเจชเจฆเฉฐเจก เจเจพเจซเจผเฉ เจฎเจฟเจเจฐเฉ เจนเจจ เจ เจคเฉ เจฎเฉเจธเจผเจเจฟเจฒ เจจเจพเจฒ เจเจฟเฉฑเจชเจฃเฉเจเจ เจฆเฉ เจฒเฉเฉ เจนเฉ, เจชเจฐ เจเฉเจเจชเจฒเฉเจ เจตเฉเจฐเฉเจเจฌเจฒเจพเจ เจฒเจ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเจคเฉ เจเจ เจฎเจพเจชเจฆเฉฐเจกเจพเจ 'เจคเฉ เจตเจฟเจธเจผเฉเจธเจผ เจงเจฟเจเจจ เจฆเฉเจฃ เจฏเฉเจ เจนเฉเฅค
เจเฉฐเจฎ เจฆเฉ เจเจฎ เจฏเฉเจเจจเจพ เจเจธ เจคเฉฑเจฅ 'เจคเฉ เจนเฉเจ เจพเจ เจเจเจเจฆเฉ เจนเฉ เจเจฟ เจ เจธเฉเจ เจเฉฑเจ YAML เจซเจพเจเจฒ เจฐเจพเจนเฉเจ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ "เจเจฐเจกเจฐ" เจเจฐเจฆเฉ เจนเจพเจ, เจเจฟเจธ เจฒเจ เจเจชเจฐเฉเจเจฐ เจเจผเจฐเฉเจฐเฉ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจเจฐเจฆเจพ เจนเฉ เจ เจคเฉ เจธเจพเจจเฉเฉฐ เจเฉฑเจ "เจ เจธเจฒ เจจเจนเฉเจ" เจเฉเจชเจค เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉ เจเจฟเจธ เจจเจพเจฒ เจ เจธเฉเจ เจ เฉฑเจเฉ เจเฉฐเจฎ เจเจฐ เจธเจเจฆเฉ เจนเจพเจเฅค (เจจเฉเจเฉ เจฆเฉเจเฉ). เจ เจคเฉ เจเฉฑเจชเจฐ เจฆเจฟเฉฑเจคเฉ เจตเฉเจฐเฉเจเจฌเจฒ เจคเฉเจ, เจเจฎเจพเจเจก เจ เจคเฉ เจเฉเจชเจค เจจเจพเจฎ เจจเฉเฉฐ เจเฉฐเจชเจพเจเจฒ เจเฉเจคเจพ เจเจพเจตเฉเจเจพเฅค
เจเจน เจเจฟเจนเฉ เจเจฟเจนเฉ เจเฉเจฎ เจนเฉ? เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ เจฒเจ เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพเจเจฃ เจตเฉเจฒเฉ, เจชเฉเจก เจฆเฉ เจ เฉฐเจฆเจฐ เจฐเฉเจ เจเจชเจฐเฉเจเจฐ เจนเฉเจ เจฒเจฟเจเฉ เจเฉฐเจฎ เจเจฐเฉเจเจพ:
radosgw-admin user create --uid="rook-user" --display-name="{{ .Values.s3.username }}"
เจเจธ เจเจฎเจพเจเจก เจจเฉเฉฐ เจเจฒเจพเจเจฃ เจฆเจพ เจจเจคเฉเจเจพ เจเฉฑเจ JSON เจฌเจฃเจคเจฐ เจนเฉเจตเฉเจเจพ:
{
"user_id": "rook-user",
"display_name": "{{ .Values.s3.username }}",
"keys": [
{
"user": "rook-user",
"access_key": "NRWGT19TWMYOB1YDBV1Y",
"secret_key": "gr1VEGIV7rxcP3xvXDFCo4UDwwl2YoNrmtRlIAty"
}
],
...
}
Keys
- เจญเจตเจฟเฉฑเจ เจฆเฉเจเจ เจเจฟเจนเฉเฉเจเจ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ S3 API เจฆเฉเจเจฐเจพ เจเจฌเจเฉเจเจ เจธเจเฉเจฐเฉเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉเจเจเฉเฅค เจฐเฉเจ เจเจชเจฐเฉเจเจฐ เจเจฟเจฐเจชเจพ เจเจฐเจเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเฉเจฃเจฆเจพ เจนเฉ เจ
เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจจเจพเจฎ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจเฉเจชเจค เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเจชเจฃเฉ เจจเฉเจฎเจธเจชเฉเจธ เจตเจฟเฉฑเจ เจฐเฉฑเจเจฆเจพ เจนเฉ rook-ceph-object-user-{{ $.Values.s3.crdName }}-{{ $.Values.s3.username }}
.
เจเจธ เจเฉเจชเจค เจคเฉเจ เจกเฉเจเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ, เจเจธเจจเฉเฉฐ เจตเจพเจคเจพเจตเจฐเจฃ เจตเฉเจฐเฉเจเจฌเจฒ เจฆเฉ เจฐเฉเจช เจตเจฟเฉฑเจ เจเฉฐเจเฉเจจเจฐ เจตเจฟเฉฑเจ เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจคเฉเจฐ เจคเฉ, เจฎเฉเจ เจเฉเจฌ เจฒเจ เจเฉฑเจ เจเฉเจเจชเจฒเฉเจ เจฆเฉเจตเจพเจเจเจพ, เจเจฟเจธ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจนเจฐเฉเจ เจเจชเจญเฉเจเจคเจพ เจตเจพเจคเจพเจตเจฐเจฃ เจฒเจ เจเจชเจฃเฉ เจเจช เจนเฉ เจฌเจพเจฒเจเฉเจเจ เจฌเจฃเจพเจเจเจฆเฉ เจนเจพเจ:
{{- range $bucket := $.Values.s3.bucketNames }}
apiVersion: batch/v1
kind: Job
metadata:
name: create-{{ $bucket }}-bucket-job
annotations:
"helm.sh/hook": post-install
"helm.sh/hook-weight": "2"
spec:
template:
metadata:
name: create-{{ $bucket }}-bucket-job
spec:
restartPolicy: Never
initContainers:
- name: waitdns
image: alpine:3.6
command: ["/bin/sh", "-c", "while ! getent ahostsv4 rook-ceph-rgw-{{ $.Values.s3.crdName }}; do sleep 1; done" ]
- name: config
image: rook/ceph:v1.0.0
command: ["/bin/sh", "-c"]
args: ["s3cmd --configure --access_key=$(ACCESS-KEY) --secret_key=$(SECRET-KEY) -s --no-ssl --dump-config | tee /config/.s3cfg"]
volumeMounts:
- name: config
mountPath: /config
env:
- name: ACCESS-KEY
valueFrom:
secretKeyRef:
name: rook-ceph-object-user-{{ $.Values.s3.crdName }}-{{ $.Values.s3.username }}
key: AccessKey
- name: SECRET-KEY
valueFrom:
secretKeyRef:
name: rook-ceph-object-user-{{ $.Values.s3.crdName }}-{{ $.Values.s3.username }}
key: SecretKey
containers:
- name: create-bucket
image: rook/ceph:v1.0.0
command:
- "s3cmd"
- "mb"
- "--host=rook-ceph-rgw-{{ $.Values.s3.crdName }}"
- "--host-bucket= "
- "s3://{{ $bucket }}"
ports:
- name: s3-no-sll
containerPort: 80
volumeMounts:
- name: config
mountPath: /root
volumes:
- name: config
emptyDir: {}
---
{{- end }}
เจเจธ เจจเฉเจเจฐเฉ เจตเจฟเฉฑเจ เจธเฉเจเฉเจฌเฉฑเจง เจธเจพเจฐเฉเจเจ เจเจพเจฐเจตเจพเจเจเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจฆเฉ เจขเจพเจเจเฉ เจฆเฉ เจ เฉฐเจฆเจฐ เจเฉเจคเฉเจเจ เจเจเจเจ เจธเจจเฅค YAML เจซเจพเจเจฒเจพเจ เจตเจฟเฉฑเจ เจตเจฐเจฃเจฟเจค เจขเจพเจเจเฉ เจจเฉเฉฐ เจเฉฑเจ Git เจฐเจฟเจชเฉเจเจผเจเจฐเฉ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจเจฆเจพ เจนเฉ เจ เจคเฉ เจเจ เจตเจพเจฐ เจฎเฉเฉ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค เจ เจธเฉเจ เจเจธเจจเฉเฉฐ DevOps เจเฉฐเจเฉเจจเฉเจ เจฐเจพเจ เจ เจคเฉ เจธเจฎเฉเฉฑเจเฉ เจคเฉเจฐ 'เจคเฉ CI/CD เจชเฉเจฐเจเจฟเจฐเจฟเจ เจฒเจ เจเฉฑเจ เจตเจฟเจธเจผเจพเจฒ เจชเจฒเฉฑเจธ เจตเจเฉเจ เจฆเฉเจเจฆเฉ เจนเจพเจเฅค
Rook เจ เจคเฉ Rados เจจเจพเจฒ เจเฉเจธเจผ
Ceph + RBD เจธเฉเจฎเฉเจฒ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจจเจพเจฒ เจชเฉเจกเจพเจ เจจเฉเฉฐ เจฎเจพเจเจเจ เจเจฐเจจ 'เจคเฉ เจเฉเจ เจชเจพเจฌเฉฐเจฆเฉเจเจ เจฒเฉฑเจ เจเจพเจเจฆเฉเจเจ เจนเจจเฅค
เจเจพเจธ เจคเฉเจฐ 'เจคเฉ, เจธเจเฉเจเจซเฉเฉฑเจฒ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจเฉฐเจฎ เจเจฐเจจ เจฒเจ เจจเฉเจฎเจธเจชเฉเจธ เจตเจฟเฉฑเจ Ceph เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจเจฐเจจ เจฒเจ เจเฉฑเจ เจเฉเจชเจค เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค เจเจน เจ เฉเจ เจนเฉ เจเฉเจเจฐ เจคเฉเจนเจพเจกเฉ เจเฉเจฒ เจเจนเจจเจพเจ เจฆเฉ เจจเจพเจฎ-เจธเจฅเจพเจจเจพเจ เจตเจฟเฉฑเจ 2-3 เจตเจพเจคเจพเจตเจฐเจฃ เจนเจจ: เจคเฉเจธเฉเจ เจเจพ เจธเจเจฆเฉ เจนเฉ เจ เจคเฉ เจเฉเจชเจค เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจเจพเจชเฉ เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจชเจฐ เจเจฆเฉเจ เจเฉ เจเฉ เจนเจฐเฉเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจฒเจ เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจฒเจ เจเจธเจฆเฉ เจเจชเจฃเฉ เจจเฉเจฎเจธเจชเฉเจธ เจตเจพเจฒเจพ เจเฉฑเจ เจตเฉฑเจเจฐเจพ เจตเจพเจคเจพเจตเจฐเจฃ เจฌเจฃเจพเจเจ เจเจฟเจ เจนเฉ?
เจ
เจธเฉเจ เจเจธ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจเฉเจฆ เจตเจฐเจค เจเฉ เจนเฉฑเจฒ เจเฉเจคเจพ เจนเฉ
#! /bin/bash
if [[ $1 == โ--configโ ]]; then
cat <<EOF
{"onKubernetesEvent":[
{"name": "OnNewNamespace",
"kind": "namespace",
"event": ["add"]
}
]}
EOF
else
NAMESPACE=$(kubectl get namespace -o json | jq '.items | max_by( .metadata.creationTimestamp ) | .metadata.name')
kubectl -n ${CEPH_SECRET_NAMESPACE} get secret ${CEPH_SECRET_NAME} -o json | jq ".metadata.namespace="${NAMESPACE}"" | kubectl apply -f -
fi
เจนเจพเจฒเจพเจเจเจฟ, เจฐเฉเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจธเจฎเฉเจ เจเจน เจธเจฎเฉฑเจธเจฟเจ เจฎเฉเจเฉเจฆ เจจเจนเฉเจ เจนเฉ. เจฎเจพเจเจเจเจฟเฉฐเจ เจชเฉเจฐเจเจฟเจฐเจฟเจ เจเจธ เจฆเฉ เจเจชเจฃเฉ เจกเจฐเจพเจเจตเจฐเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ
เจฐเฉเจ เจเจชเจฃเฉ เจเจช เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจจเฉเฉฐ เจนเฉฑเจฒ เจเจฐเจฆเจพ เจนเฉ, เจเฉ เจธเจพเจจเฉเฉฐ เจจเจตเฉเจ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจ เจเจธเจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฒเจ เจเจคเจธเจผเจพเจนเจฟเจค เจเจฐเจฆเจพ เจนเฉเฅค
Rook เจฆเฉ เจเฉเจฐเจพเจฌเฉฐเจฆเฉ
เจเจ เจ เจธเฉเจ เจฐเฉเจ เจ เจคเฉ เจธเฉเจซ เจจเฉเฉฐ เจคเฉเจจเจพเจค เจเจฐเจเฉ เจตเจฟเจนเจพเจฐเจ เจญเจพเจ เจจเฉเฉฐ เจชเฉเจฐเจพ เจเจฐเฉเจ เจคเจพเจ เจเฉ เจ เจธเฉเจ เจเจชเจฃเฉ เจเฉเจฆ เจฆเฉ เจชเฉเจฐเจฏเฉเจ เจเจฐ เจธเจเฉเจเฅค เจเจธ เจ เจฆเฉเฉฑเจคเฉ เจเจพเจตเจฐ เจจเฉเฉฐ เจคเฉเจซเจพเจจ เจเจฐเจจเจพ เจเจธเจพเจจ เจฌเจฃเจพเจเจฃ เจฒเจ, เจกเจฟเจตเฉเจฒเจชเจฐเจพเจ เจจเฉ เจนเฉเจฒเจฎ เจชเฉเจเฉเจ เจคเจฟเจเจฐ เจเฉเจคเจพ เจนเฉเฅค เจเจ เจเจธเจจเฉเฉฐ เจกเจพเจเจจเจฒเฉเจก เจเจฐเฉเจ:
$ helm fetch rook-master/rook-ceph --untar --version 1.0.0
เจซเจพเจเจฒ เจตเจฟเฉฑเจ rook-ceph/values.yaml
เจคเฉเจธเฉเจ เจฌเจนเฉเจค เจธเจพเจฐเฉเจเจ เจตเฉฑเจเจฐเฉเจเจ เจธเฉเจเจฟเฉฐเจเจพเจ เจฒเฉฑเจญ เจธเจเจฆเฉ เจนเฉเฅค เจธเจญ เจคเฉเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจเฉฑเจฒ เจเจน เจนเฉ เจเจฟ เจเจเฉฐเจเจพเจ เจ
เจคเฉ เจเฉเจเจพเจ เจฒเจ เจธเจนเจฟเจฃเจธเจผเฉเจฒเจคเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจจเจพ. เจ
เจธเฉเจ เจตเจฟเจธเจฅเจพเจฐ เจตเจฟเฉฑเจ เจฆเฉฑเจธเจฟเจ เจนเฉ เจเจฟ เจฆเจพเจ/เจธเจนเจฟเจฃเจธเจผเฉเจฒเจคเจพ เจตเจฟเจงเฉ เจเจฟเจธ เจฒเจ เจตเจฐเจคเฉ เจเจพ เจธเจเจฆเฉ เจนเฉ
เจธเฉฐเจเฉเจช เจตเจฟเฉฑเจ, เจ เจธเฉเจ เจจเจนเฉเจ เจเจพเจนเฉเฉฐเจฆเฉ เจเจฟ เจเจฒเจพเจเฉฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจชเฉเจก เจเจธเฉ เจจเฉเจกเจพเจ 'เจคเฉ เจธเจฅเจฟเจค เจนเฉเจฃ เจเจฟเจตเฉเจ เจเจฟ เจกเฉเจเจพ เจธเจเฉเจฐเฉเจ เจกเจฟเจธเจเฅค เจเจพเจฐเจจ เจธเจงเจพเจฐเจจ เจนเฉ: เจเจธ เจคเจฐเฉเจเฉ เจจเจพเจฒ เจฐเฉเจ เจเจเฉฐเจเจพเจ เจฆเจพ เจเฉฐเจฎ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจจเฉเฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจจเจนเฉเจ เจเจฐเฉเจเจพเฅค
เจเจธ เจฒเจ, เจซเจพเจเจฒ เจเฉเจฒเฉเจนเฉ rook-ceph/values.yaml
เจเจชเจฃเฉ เจฎเจจเจชเจธเฉฐเจฆ เจธเฉฐเจชเจพเจฆเจ เจฆเฉ เจจเจพเจฒ เจ
เจคเฉ เจ
เฉฐเจค เจตเจฟเฉฑเจ เจนเฉเจ เจพเจ เจฆเจฟเฉฑเจคเฉ เจฌเจฒเจพเจ เจจเฉเฉฐ เจเฉเฉเฉ:
discover:
toleration: NoExecute
tolerationKey: node-role/storage
agent:
toleration: NoExecute
tolerationKey: node-role/storage
mountSecurityMode: Any
เจกเฉเจเจพ เจธเจเฉเจฐเฉเจ เจฒเจ เจฐเจพเจเจตเฉเจ เจนเจฐเฉเจ เจจเฉเจก เจฒเจ, เจ เจจเฉเจธเจพเจฐเฉ เจฆเจพเจ เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
$ kubectl taint node ${NODE_NAME} node-role/storage="":NoExecute
เจซเจฟเจฐ เจเจฎเจพเจเจก เจจเจพเจฒ เจนเฉเจฒเจฎ เจเจพเจฐเจ เจจเฉเฉฐ เจธเจฅเจพเจชเจฟเจค เจเจฐเฉ:
$ helm install --namespace ${ROOK_NAMESPACE} ./rook-ceph
เจนเฉเจฃ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉฑเจ เจเจฒเฉฑเจธเจเจฐ เจฌเจฃเจพเจเจฃ เจ
เจคเฉ เจธเจฅเจพเจจ เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
clusterName: "ceph"
finalizers:
- cephcluster.ceph.rook.io
generation: 1
name: rook-ceph
spec:
cephVersion:
image: ceph/ceph:v13
dashboard:
enabled: true
dataDirHostPath: /var/lib/rook/osd
mon:
allowMultiplePerNode: false
count: 3
network:
hostNetwork: true
rbdMirroring:
workers: 1
placement:
all:
tolerations:
- key: node-role/storage
operator: Exists
storage:
useAllNodes: false
useAllDevices: false
config:
osdsPerDevice: "1"
storeType: filestore
resources:
limits:
memory: "1024Mi"
requests:
memory: "1024Mi"
nodes:
- name: host-1
directories:
- path: "/mnt/osd"
- name: host-2
directories:
- path: "/mnt/osd"
- name: host-3
directories:
- path: "/mnt/osd"
Ceph เจธเจฅเจฟเจคเฉ เจฆเฉ เจเจพเจเจ เจเจฐ เจฐเจฟเจนเจพ เจนเฉ - เจฆเฉเจเจฃ เจฆเฉ เจเจฎเฉเจฆ เจนเฉ HEALTH_OK
:
$ kubectl -n ${ROOK_NAMESPACE} exec $(kubectl -n ${ROOK_NAMESPACE} get pod -l app=rook-ceph-operator -o name -o jsonpath='{.items[0].metadata.name}') -- ceph -s
เจเจธเฉ เจธเจฎเฉเจ, เจเจ เจเจน เจเจพเจเจ เจเจฐเฉเจ เจเจฟ เจเจฒเจพเจเฉฐเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจตเจพเจฒเฉ เจชเฉเจก Ceph เจฒเจ เจฐเจพเจเจตเฉเจ เจจเฉเจกเจพเจ 'เจคเฉ เจเจคเจฎ เจจเจนเฉเจ เจนเฉเฉฐเจฆเฉ เจนเจจ:
$ kubectl -n ${APPLICATION_NAMESPACE} get pods -o custom-columns=NAME:.metadata.name,NODE:.spec.nodeName
เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจตเจพเจงเฉ เจญเจพเจเจพเจ เจจเฉเฉฐ เจฒเฉเฉ เจ
เจจเฉเจธเจพเจฐ เจธเฉฐเจฐเจเจฟเจค เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจนเจจเจพเจ เจฌเจพเจฐเฉ เจนเฉเจฐ เจตเฉเจฐเจตเฉ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจเจ เจนเจจ
เจฐเฉเจ เจ เจคเฉ เจนเฉเฉฑเจเจธ: เจเฉ เจฐเฉเจ เจนเจฐ เจเฉเจเจผ เจฒเจ เจเจพเจซเจผเฉ เจนเฉ?
เจเจฟเจตเฉเจ เจเจฟ เจคเฉเจธเฉเจ เจฆเฉเจ เจธเจเจฆเฉ เจนเฉ, เจฐเฉเจ เจฆเจพ เจตเจฟเจเจพเจธ เจชเฉเจฐเฉ เจเจผเฉเจฐเจพเจ 'เจคเฉ เจนเฉ. เจชเจฐ เจ เจเฉ เจตเฉ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจนเจจ เจเฉ เจธเจพเจจเฉเฉฐ เจธเฉเจซ เจฆเฉ เจฎเฉเจจเฉเจ เจฒ เจเฉเจเจซเจฟเจเจฐเฉเจธเจผเจจ เจจเฉเฉฐ เจชเฉเจฐเฉ เจคเจฐเฉเจนเจพเจ เจเฉฑเจกเจฃ เจฆเฉ เจเจเจฟเจ เจจเจนเฉเจ เจฆเจฟเฉฐเจฆเฉเจเจ:
- เจเฉเจ เจฐเฉเฉฑเจ เจกเจฐเจพเจเจตเจฐ เจจเจนเฉเจ
เจจเจนเฉเจ เจเจฐ เจธเจเจฆเจพ เจฎเจพเจเจเจ เจเฉเจคเฉ เจฌเจฒเจพเจเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ 'เจคเฉ เจจเจฟเจฐเจฏเจพเจค เจฎเฉเจเฉเจฐเจฟเจเจธ, เจเฉ เจธเจพเจจเฉเฉฐ เจจเจฟเจเจฐเจพเจจเฉ เจคเฉเจ เจตเจพเจเจเฉ เจฐเฉฑเจเจฆเจพ เจนเฉเฅค - Flexvolume เจ
เจคเฉ CSI
เจชเจคเจพ เจจเจนเฉเจ เจเจฟเจตเฉเจ เจตเจพเจฒเฉเจ เจฎ เจฆเจพ เจเจเจพเจฐ เจฌเจฆเจฒเฉ (เจเฉฑเจเฉ RBD เจฆเฉ เจเจฒเจ), เจเจธเจฒเจ Rook เจเฉฑเจ เจเจชเจฏเฉเจเฉ (เจ เจคเฉ เจเจ เจตเจพเจฐ เจเฉฐเจญเฉเจฐ เจคเฉเจฐ 'เจคเฉ เจฒเฉเฉเฉเจเจฆเฉ!) เจเฉเจฒ เจคเฉเจ เจตเจพเจเจเจพ เจนเฉเฅค - เจฐเฉเจ เจ เจเฉ เจตเฉ เจจเจฟเจฏเจฎเจค เจธเฉเจซ เจเจฟเฉฐเจจเจพ เจฒเจเจเจฆเจพเจฐ เจจเจนเฉเจ เจนเฉ. เจเฉเจเจฐ เจ เจธเฉเจ CephFS เจฎเฉเจเจพเจกเฉเจเจพ เจจเฉเฉฐ SSD 'เจคเฉ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ เจชเฉเจฒ เจจเฉเฉฐ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจจเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ, เจ เจคเฉ เจกเจพเจเจพ เจเฉเจฆ HDD 'เจคเฉ เจธเจเฉเจฐ เจเฉเจคเจพ เจเจพเจฃเจพ เจนเฉ, เจคเจพเจ เจธเจพเจจเฉเฉฐ CRUSH เจจเจเจธเจผเจฟเจเจ เจตเจฟเฉฑเจ เจกเจฟเจตเจพเจเจธเจพเจ เจฆเฉ เจตเฉฑเจเจฐเฉ เจธเจฎเฉเจนเจพเจ เจจเฉเฉฐ เจนเฉฑเจฅเฉเจ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉเฅค
- เจเจธ เจคเฉฑเจฅ เจฆเฉ เจฌเจพเจตเจเฉเจฆ เจเจฟ rook-ceph-operator เจจเฉเฉฐ เจธเจฅเจฟเจฐ เจฎเฉฐเจจเจฟเจ เจเจพเจเจฆเจพ เจนเฉ, เจตเจฐเจคเจฎเจพเจจ เจตเจฟเฉฑเจ Ceph เจจเฉเฉฐ เจตเจฐเจเจจ 13 เจคเฉเจ 14 เจคเฉฑเจ เจ เฉฑเจชเจเจฐเฉเจก เจเจฐเจจ เจตเฉเจฒเฉ เจเฉเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจนเจจเฅค
เจธเจฟเฉฑเจเจพ
"เจเจธ เจธเจฎเฉเจ เจฐเฉเจ เจจเฉเฉฐ เจฌเจพเจนเจฐเฉ เจฆเฉเจจเฉเจ เจคเฉเจ เจฌเฉฐเจฆเจฟเจเจ เจฆเฉเจเจฐเจพ เจฌเฉฐเจฆ เจเจฐ เจฆเจฟเฉฑเจคเจพ เจเจฟเจ เจนเฉ, เจชเจฐ เจธเจพเจจเฉเฉฐ เจตเจฟเจธเจผเจตเจพเจธ เจนเฉ เจเจฟ เจเฉฑเจ เจฆเจฟเจจ เจเจน เจเฉเจก เจตเจฟเฉฑเจ เจจเจฟเจฐเจฃเจพเจเจ เจญเฉเจฎเจฟเจเจพ เจจเจฟเจญเจพเจเจเฉ!" (เจเจธ เจฒเฉเจ เจฒเจ เจตเจฟเจธเจผเฉเจธเจผ เจคเฉเจฐ 'เจคเฉ เจเฉเจ เจเฉเจคเฉ เจเจ เจนเจตเจพเจฒเจพ)
เจฐเฉเจ เจชเฉเจฐเฉเจเฉเจเจ เจจเฉ เจฌเจฟเจจเจพเจ เจธเจผเฉฑเจ เจธเจพเจกเฉ เจฆเจฟเจฒ เจเจฟเฉฑเจค เจฒเจ เจนเจจ - เจ เจธเฉเจ เจตเจฟเจธเจผเจตเจพเจธ เจเจฐเจฆเฉ เจนเจพเจ เจเจฟ [เจเจธเจฆเฉ เจธเจพเจฐเฉ เจเฉฐเจเฉ เจ เจคเฉ เจจเฉเจเจธเจพเจจ เจฆเฉ เจจเจพเจฒ] เจเจน เจฏเจเฉเจจเฉ เจคเฉเจฐ 'เจคเฉ เจคเฉเจนเจพเจกเฉ เจงเจฟเจเจจ เจฆเจพ เจนเฉฑเจเจฆเจพเจฐ เจนเฉเฅค
เจธเจพเจกเฉเจเจ เจญเจตเจฟเฉฑเจ เจฆเฉเจเจ เจฏเฉเจเจจเจพเจตเจพเจ เจฐเฉเจ-เจธเฉเจซ เจจเฉเฉฐ เจเฉฑเจ เจฎเฉเจกเฉเจเจฒ เจฌเจฃเจพเจเจฃ เจฒเจ เจเจฌเจพเจฒเจฆเฉเจเจ เจนเจจ
PS
เจธเจพเจกเฉ เจฌเจฒเฉเจ 'เจคเฉ เจตเฉ เจชเฉเฉเจนเฉ:
- ยซ
เจฐเฉเจ เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ เจเฉฑเจ "เจธเจตเฉ-เจธเฉเจตเจพ" เจกเฉเจเจพ เจธเจเฉเจฐ เจนเฉ "; - ยซ
Ceph 'เจคเฉ เจเจงเจพเจฐเจฟเจค Kubernetes เจตเจฟเฉฑเจ เจชเฉเจฐเฉเจตเจฟเจเจผเจจเจฟเฉฐเจ เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจธเจฅเจพเจ เจธเจเฉเจฐเฉเจ เจฌเจฃเจพเจ "; - ยซ
เจกเจพเจเจพเจฌเฉเจธ เจ เจคเฉ เจเฉเจฌเจฐเจจเฉเจเจธ (เจธเจฎเฉเจเจฟเจ เจ เจคเฉ เจตเฉเจกเฉเจ เจฐเจฟเจชเฉเจฐเจ) "; - ยซ
เจธเจผเฉเฉฑเจฒ-เจเจชเจฐเฉเจเจฐ เจชเฉเจธเจผ เจเจฐเจจเจพ: เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ เจเจชเจฐเฉเจเจฐ เจฌเจฃเจพเจเจฃเจพ เจนเฉเจฃเฉ เจเจธเจพเจจ เจนเฉ เจเจฟเจ เจนเฉ "; - ยซ
เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ เจเจชเจฐเฉเจเจฐ: เจธเจเฉเจเจซเฉเฉฑเจฒ เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเจฒเจพเจเจฃเจพ เจนเฉ ".
เจธเจฐเฉเจค: www.habr.com