เด เดฎเดพเดธเดคเตเดคเดฟเดจเตเดฑเต เดคเตเดเดเตเดเดคเตเดคเดฟเตฝ, เดฎเตเดฏเต 3 เดจเต, โเดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเต เดตเดฟเดคเดฐเดฃเด เดเตเดฏเตเดค เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฃเดคเตเดคเดฟเดจเตเดณเตเดณ เดฎเดพเดจเตเดเตเดฎเตเดจเตเดฑเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเตโ เดเดฐเต เดชเตเดฐเดงเดพเดจ เดฑเดฟเดฒเตเดธเต เดชเตเดฐเดเตเดฏเดพเดชเดฟเดเตเดเต -
เดเตเดฐเตเดเตเดเดคเตเดคเดฟเตฝ, เดฑเตเดเตเดเต เดเดฐเต เดธเตเดฑเตเดฑเดพเดฃเต
เดเดชเตเดชเตเตพ เดเดฑเตเดฑเดตเตเด เดตเดฟเดเดธเดฟเดค (เดเดชเตเดชเด
เด เดญเดฟเดชเดพเดฏเดชเตเดชเตเดเตเด: 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 เดชเตเดฐเตเดธเดธเตเดธเดฟเดจเตเด เดฎเตเดคเตเดคเดคเตเดคเดฟเตฝ เดเดคเต เดเดฐเต เดตเดฒเดฟเดฏ เดชเตเดฒเดธเต เดเดฏเดฟ เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต.
เดฑเตเดเตเดเตเด เดฑเดพเดกเตเดธเตเดฎเดพเดฏเดฟ เดธเดจเตเดคเตเดทเดฎเตเดฃเตเดเต
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
เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดฑเตเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เด เดชเตเดฐเดถเตเดจเด เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒ. เดฎเตเดฃเตเดเดฟเดเดเต เดชเตเดฐเดเตเดฐเดฟเดฏ เด
เดคเดฟเดจเตเดฑเต เดธเตเดตเดจเตเดคเด เดกเตเดฐเตเดตเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเดพเดฃเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเดคเต
เดฑเตเดเตเดเต เดธเตเดตเดฏเดฎเตเดต เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเดถเตเดจเดเตเดเตพ เดชเดฐเดฟเดนเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเดคเต เดชเตเดคเดฟเดฏ เดชเตเดฐเตเดเดเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดเตเดเดณเต เดชเตเดฐเตเดคเตเดธเดพเดนเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต.
เดฑเตเดเตเดเดฟเดจเตเดฑเต เดเดชเดฐเตเดงเด
เดฑเตเดเตเดเดฟเดจเตเดฏเตเด เดธเตเดซเดฟเดจเตเดฏเตเด เดตเดฟเดจเตเดฏเดธเดฟเดเตเดเตเดเตเดฃเตเดเต เดจเดฎเตเดเตเดเต เดชเตเดฐเดพเดฏเตเดเดฟเด เดญเดพเดเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดเตเดเดพเด, เด เดเตเดเดจเต เดจเดฎเตเดเตเดเต เดจเดฎเตเดฎเตเดเต เดธเตเดตเดจเตเดคเด เดชเดฐเตเดเตเดทเดฃเดเตเดเตพ เดจเดเดคเตเดคเดพเด. เด เด เดเดฏเตเดฏเดฎเดพเดฏ เดเดตเดฑเดฟเดจเต เดเดเตเดฐเดฎเดฟเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดกเตเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดเดฐเต เดนเตเตฝเด เดชเดพเดเตเดเตเดเต เดคเดฏเตเดฏเดพเดฑเดพเดเตเดเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. เดจเดฎเตเดเตเดเต เดเดคเต เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดฏเดพเด:
$ 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
เดเตเดเดพเดคเต, เด
เดงเดฟเด เดเดเดเดเตเดเตพ เดเดตเดถเตเดฏเดพเดจเตเดธเดฐเดฃเด เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเด. เด
เดตเดฐเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ เด
เดคเดฟเตฝ เดธเตเดเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต
เดฑเตเดเตเดเตเด เดเตเดณเตเดคเตเดคเตเดเดณเตเด: เดเดฒเตเดฒเดพเดคเตเดคเดฟเดจเตเด เดฑเตเดเตเดเต เดฎเดคเดฟเดฏเต?
เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดฑเตเดเตเดเดฟเดจเตเดฑเต เดตเดฟเดเดธเดจเด เดธเดเตเดตเดฎเดพเดฃเต. เดเดจเตเดจเดพเตฝ เดธเตเดซเดฟเดจเตเดฑเต เดฎเดพเดจเตเดตเตฝ เดเตเตบเดซเดฟเดเดฑเตเดทเตป เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเตเด เดเดชเตเดเตเดทเดฟเดเตเดเดพเตป เดเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเดพเดคเตเดค เดชเตเดฐเดถเตเดจเดเตเดเตพ เดเดชเตเดชเตเดดเตเด เดเดฃเตเดเต:
- เดฑเตเดเตเดเต เดกเตเดฐเตเดตเตผ เดเดฒเตเดฒ
เดเดจเตเดจเตเด เดเดดเดฟเดฏเดฟเดฒเตเดฒ เดฎเตเดฃเตเดเดกเต เดฌเตเดฒเตเดเตเดเตเดเดณเตเดเต เดเดชเดฏเตเดเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดฎเตเดเตเดฐเดฟเดเตโเดธเต เดเดฏเดฑเตเดฑเตเดฎเดคเดฟ เดเตเดฏเตเดฏเตเด, เดเดคเต เดเดเตเดเตพเดเตเดเต เดจเดฟเดฐเตเดเตเดทเดฃเด เดจเดทเตเดเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจเต. - เดซเตเดฒเตเดเตเดธเต เดตเตเดณเดฟเดฏเดตเตเด เดธเดฟ.เดเดธเต.เด
เดเดเตเดเดจเตเดฏเตเดจเตเดจเต เด เดฑเดฟเดฏเดฟเดฒเตเดฒ เดตเตเดณเตเดฏเดเตเดเดณเตเดเต เดตเดฒเตเดชเตเดชเด เดฎเดพเดฑเตเดฑเตเด (เดเดฐเต RBD เดจเต เดตเดฟเดชเดฐเตเดคเดฎเดพเดฏเดฟ), เด เดคเดฟเดจเดพเตฝ เดฑเตเดเตเดเดฟเดจเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏ (เดเดฟเดฒเดชเตเดชเตเตพ เดตเดฟเดฎเตผเดถเดจเดพเดคเตเดฎเดเดฎเดพเดฏเดฟ เดเดตเดถเตเดฏเดฎเดพเดฃเต!) เดเดชเดเดฐเดฃเด เดจเดทเตเดเดชเตเดชเตเดเตเดเต. - เดฑเตเดเตเดเต เดเดชเตเดชเตเดดเตเด เดธเดพเดงเดพเดฐเดฃ เดธเตเดซเดฟเดจเตเดชเตเดชเตเดฒเต เดตเดดเดเตเดเดฎเตเดณเตเดณเดตเดจเดฒเตเดฒ. SSD-เดฏเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจ CephFS เดฎเตเดฑเตเดฑเดพเดกเดพเดฑเตเดฑเดฏเตโเดเตเดเดพเดฏเดฟ เดชเตเตพ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเดพเดจเตเด เดกเดพเดฑเตเดฑ เดคเดจเตเดจเต HDD-เดฏเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเดพเดจเตเด เดเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเตเดตเตเดเตเดเดฟเตฝ, เดเดเตเดเตพ เดเตเดฐเดทเต เดฎเดพเดชเตเดชเตเดเดณเดฟเตฝ เดเดชเดเดฐเดฃเดเตเดเดณเตเดเต เดชเตเดฐเดคเตเดฏเตเด เดเตเดฐเตเดชเตเดชเตเดเตพ เดธเตเดตเดฎเตเดงเดฏเดพ เดฐเดเดฟเดธเตเดฑเตเดฑเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
- Rook-ceph-operator เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณเดคเดพเดฏเดฟ เดเดฃเดเตเดเดพเดเตเดเดชเตเดชเตเดเตเดจเตเดจเตเดฃเตเดเตเดเตเดเดฟเดฒเตเด, Ceph เดชเดคเดฟเดชเตเดชเต 13-เตฝ เดจเดฟเดจเตเดจเต 14-เดฒเตเดเตเดเต เด เดชเตเดเตเดฐเตเดกเต เดเตเดฏเตเดฏเตเดฎเตเดชเตเตพ เดจเดฟเดฒเดตเดฟเตฝ เดเดฟเดฒ เดชเตเดฐเดถเตเดจเดเตเดเดณเตเดฃเตเดเต.
เดเดฃเตเดเตเดคเตเดคเดฒเตเดเตพ
"เดเดชเตเดชเตเตพ เดฑเตเดเตเดเต เดชเดฃเดฏเดเตเดเดพเดฐเดพเตฝ เดชเตเดฑเด เดฒเตเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด เดเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต, เดชเดเตเดทเต เดเดฐเต เดฆเดฟเดตเดธเด เด เดตเตพ เดเตเดฏเดฟเดฎเดฟเตฝ เดจเดฟเตผเดฃเดพเดฏเด เดชเดเตเดเต เดตเดนเดฟเดเตเดเตเดฎเตเดจเตเดจเต เดเดเตเดเตพ เดตเดฟเดถเตเดตเดธเดฟเดเตเดเตเดจเตเดจเต!" (เด เดฒเตเดเดจเดคเตเดคเดฟเดจเดพเดฏเดฟ เดชเตเดฐเดคเตเดฏเตเดเดฎเดพเดฏเดฟ เดเดฃเตเดเตเดชเดฟเดเดฟเดเตเด เดเดฆเตเดงเดฐเดฃเดฟ)
เดฑเตเดเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดจเดฟเดธเตเดธเดเดถเดฏเดฎเดพเดฏเตเด เดเดเตเดเดณเตเดเต เดนเตเดฆเดฏเด เดเตเดดเดเดเตเดเดฟ - [เด เดคเดฟเดจเตเดฑเต เดเดฒเตเดฒเดพ เดเตเดฃเดฆเตเดทเดเตเดเดณเตเดเตเด เดเตเดเดฟ] เดเดคเต เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดจเดฟเดเตเดเดณเตเดเต เดถเตเดฐเดฆเตเดง เด เตผเดนเดฟเดเตเดเตเดจเตเดจเต เดเดจเตเดจเต เดเดเตเดเตพ เดตเดฟเดถเตเดตเดธเดฟเดเตเดเตเดจเตเดจเต.
เดเดเตเดเดณเตเดเต เดญเดพเดตเดฟ เดชเดฆเตเดงเดคเดฟเดเตพ เดฑเตเดเตเดเต-เดธเตเดซเดฟเดจเต เดเดฐเต เดฎเตเดกเตเดฏเตเดณเดพเดเตเดเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต
เดชเดฟ.เดเดธเต
เดเดเตเดเดณเตเดเต เดฌเตเดฒเตเดเดฟเดฒเตเด เดตเดพเดฏเดฟเดเตเดเตเด:
- ยซ
เดฑเตเดเตเดเต - เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดจเตเดณเตเดณ "เดธเตเดตเดฏเด เดธเตเดตเดจ" เดกเดพเดฑเตเดฑ เดตเตเดฏเตผเดนเตเดธเต "; - ยซ
Ceph เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเต เดชเตเดฐเตเดตเดฟเดทเดจเดฟเดเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดฅเดฟเดฐเดฎเดพเดฏ เดธเดเดญเดฐเดฃเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต "; - ยซ
เดกเดพเดฑเตเดฑเดพเดฌเตเดธเตเดเดณเตเด เดเตเดฌเตผเดจเตเดฑเตเดฑเตเดเดณเตเด (เด เดตเดฒเตเดเดจเดตเตเด เดตเตเดกเดฟเดฏเต เดฑเดฟเดชเตเดชเตเตผเดเตเดเตเด) "; - ยซ
เดทเตเตฝ-เดเดชเตเดชเดฑเตเดฑเตเดฑเตผ เด เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต: เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดจเดพเดฏเดฟ เดเดชเตเดชเดฑเตเดฑเตเดฑเตผเดฎเดพเดฐเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดเดชเตเดชเตเตพ เดเดณเตเดชเตเดชเดฎเดพเดฏเดฟ "; - ยซ
เดเตเดฌเตเตผเดจเตเดฑเตเดฑเดธเดฟเดจเดพเดฏเตเดณเตเดณ เดเดชเตเดชเดฑเตเดฑเตเดฑเตผเดฎเดพเตผ: เดธเตเดฑเตเดฑเตเดฑเตเดฑเตเดซเตเตพ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเด ".
เด เดตเดฒเดเดฌเด: www.habr.com