OpenShift 및 CodeReady 컨테이너에서 데이터베이스 실행
12243 단어 openshiftdatabasekubernetescassandra
CodeReady 컨테이너는 OpenShift K8s를 로컬에서 실행하는 좋은 방법으로 개발 및 테스트에 적합합니다.이 블로그의 절차는 성능이 좋은 기계, 노트북 또는 데스크톱이 필요하다.4소켓 CPU와 16GB+RAM이 좋습니다.
RedHat의 CodeReady 컨테이너 다운로드 및 설치
RedHat의 CodeReady 컨테이너 다운로드 및 설치Red Hat OpenShift 4 on your laptop: Introducing Red Hat CodeReady Containers
명령줄에서 먼저 CodeReady 컨테이너 구성
❯ crc setup
…
Your system is correctly setup for using CodeReady Containers, you can now run 'crc start' to start the OpenShift cluster
그런 다음 를 시작하고 다운로드 페이지에서 복사한 Pull Secret을 입력합니다.10분 이상 걸릴 수 있으니 기다려 주십시오.❯ crc start
INFO Checking if running as non-root
…
Started the OpenShift cluster.
The server is accessible via web console at:
https://console-openshift-console.apps-crc.testing
…
위의 출력에는 다음kubeadmin
명령에 필요한 암호oc login …
가 포함됩니다.❯ eval $(crc oc-env)
❯ oc login -u kubeadmin -p <password-from-crc-setup-output> https://api.crc.testing:6443
❯ oc version
Client Version: 4.7.11
Server Version: 4.7.11
Kubernetes Version: v1.20.0+75370d3
브라우저에서 URL 열기https://console-openshift-console.apps-crc.testingkubeadmin
사용자 이름과 비밀번호를 사용하여 로그인하고 위에서 설명한 대로 oc login …
명령을 사용합니다.자가 서명 인증서를 사용했기 때문에 몇 번을 시도해야 할 수도 있습니다.OpenShift를 시작하고 실행하면 다음 페이지를 보실 수 있습니다
상태 및 시작 프로세스를 확인하는 데 도움이 되는 명령은 다음과 같습니다.
❯ oc status
In project default on server https://api.crc.testing:6443
svc/openshift - kubernetes.default.svc.cluster.local
svc/kubernetes - 10.217.4.1:443 -> 6443
View details with 'oc describe <resource>/<name>' or list resources with 'oc get all'.
계속하기 전에 CodeReady 컨테이너 기본 설정 대화 상자로 이동합니다.이에 따라 CPU 및 메모리를 >12 및 >14GB로 늘립니다.OpenShift 로컬 볼륨 만들기
Cassandra의 데이터 디렉토리에는 영구 볼륨이 필요합니다.OpenShift에서는 Rancher 영구 볼륨에서 로컬 호스트 경로를 사용하는 것부터 OpenShift 로컬 저장소 운영자를 설치하고 사용하는 것까지 다양한 클라우드 공급자 백엔드에 있는 영구 볼륨도 있다.
이 블로그는 vanilla OpenShift 볼륨을 사용하고 주 k8s 노드의 폴더를 사용합니다.
마스터 노드의 터미널 탭으로 이동하여 원하는 디렉토리를 만듭니다.
주 노드는 /cluster/nodes/ 홈페이지에 있다.
crc-m89r2-master-0이라는 노드를 누르고 '단말기' 옵션을 누르십시오.
터미널에서 다음 명령을 실행합니다.
sh-4.4# chroot /host
sh-4.4# mkdir -p /mnt/cass-operator/pv000
sh-4.4# mkdir -p /mnt/cass-operator/pv001
sh-4.4# mkdir -p /mnt/cass-operator/pv002
sh-4.4#
주 노드와 친연 관계를 가진 영구 볼륨을 만들 것입니다. 다음yaml에서 설명합니다.마스터 노드의 이름은 설치에 따라 다를 수 있습니다.마스터 노드crc-gm7cm-master-0
의 이름이 없으면 다음 명령이 마스터 노드의 이름을 바꿉니다.먼저 cass-operator-1.7.0-openshift-storage.yaml
파일을 다운로드하고 현재 CodeReady Containers 실례 검사nodeAffinity
부분의 노드 이름과 대조하여 필요할 때 업데이트합니다.❯ wget https://thelastpickle.com/files/openshift-intro/cass-operator-1.7.0-openshift-storage.yaml
# The name of your master node
❯ oc get nodes -o=custom-columns=NAME:.metadata.name --no-headers
# If it is not crc-gm7cm-master-0
❯ sed -i '' "s/crc-gm7cm-master-0/$(oc get nodes -o=custom-columns=NAME:.metadata.name --no-headers)/" cass-operator-1.7.0-openshift-storage.yaml
영구 볼륨(PV) 및 스토리지 클래스(SC)를 생성합니다.❯ oc apply -f cass-operator-1.7.0-openshift-storage.yaml
persistentvolume/server-storage-0 created
persistentvolume/server-storage-1 created
persistentvolume/server-storage-2 created
storageclass.storage.k8s.io/server-storage created
PVs가 있는지 확인합니다.❯ oc get pv | grep server-storage
server-storage-0 10Gi RWO Delete Available server-storage 5m19s
server-storage-1 10Gi RWO Delete Available server-storage 5m19s
server-storage-2 10Gi RWO Delete Available server-storage 5m19s
SC의 존재를 확인합니다.❯ oc get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
server-storage kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 5m36s
사용에 대한 자세한 내용은 OpenShift volumes의 RedHat 설명서를 참조하십시오.Cass 운영자 배포
카스 조작부호를 만듭니다.여기에서 우리는 카스 조작부호의 상위 1.7.0 버전을 사용할 수 있다.카스 조작부호를 만든 후 POD가 필요한 권한을 가지고 성공적으로 만들 수 있도록 다음 단계에서
oc adm policy …
명령을 신속하게 실행하는 것이 중요하다.❯ oc apply -f https://raw.githubusercontent.com/k8ssandra/cass-operator/v1.7.0/docs/user/cass-operator-manifests.yaml
namespace/cass-operator created
serviceaccount/cass-operator created
secret/cass-operator-webhook-config created
W0606 14:25:44.757092 27806 warnings.go:70] apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
W0606 14:25:45.077394 27806 warnings.go:70] apiextensions.k8s.io/v1beta1 CustomResourceDefinition is deprecated in v1.16+, unavailable in v1.22+; use apiextensions.k8s.io/v1 CustomResourceDefinition
customresourcedefinition.apiextensions.k8s.io/cassandradatacenters.cassandra.datastax.com created
clusterrole.rbac.authorization.k8s.io/cass-operator-cr created
clusterrole.rbac.authorization.k8s.io/cass-operator-webhook created
clusterrolebinding.rbac.authorization.k8s.io/cass-operator-crb created
clusterrolebinding.rbac.authorization.k8s.io/cass-operator-webhook created
role.rbac.authorization.k8s.io/cass-operator created
rolebinding.rbac.authorization.k8s.io/cass-operator created
service/cassandradatacenter-webhook-service created
deployment.apps/cass-operator created
W0606 14:25:46.701712 27806 warnings.go:70] admissionregistration.k8s.io/v1beta1 ValidatingWebhookConfiguration is deprecated in v1.16+, unavailable in v1.22+; use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration
W0606 14:25:47.068795 27806 warnings.go:70] admissionregistration.k8s.io/v1beta1 ValidatingWebhookConfiguration is deprecated in v1.16+, unavailable in v1.22+; use admissionregistration.k8s.io/v1 ValidatingWebhookConfiguration
validatingwebhookconfiguration.admissionregistration.k8s.io/cassandradatacenter-webhook-registration created
❯ oc adm policy add-scc-to-user privileged -z default -n cass-operator
clusterrole.rbac.authorization.k8s.io/system:openshift:scc:privileged added: "default"
❯ oc adm policy add-scc-to-user privileged -z cass-operator -n cass-operator
clusterrole.rbac.authorization.k8s.io/system:openshift:scc:privileged added: "cass-operator"
배치 상황을 점검해 봅시다.❯ oc get deployments -n cass-operator
NAME READY UP-TO-DATE AVAILABLE AGE
cass-operator 1/1 1 1 14m
우리는 카스 조종사의 크레인이 만들어지고 성공적으로 운행되었는지 검사해야 한다.여기에 사용된 명령은 kubectl
이고 모든 k8s 작업에 대해서는 oc
와 kubectl
명령을 교환할 수 있습니다.❯ kubectl get pods -w -n cass-operator
NAME READY STATUS RESTARTS AGE
cass-operator-7675b65744-hxc8z 1/1 Running 0 15m
고장 제거: 카스 조작원이 최종적으로 Running
상태에 있지 않거나 뒷부분의 POD가 시작되지 않으면 진단하기 편리하도록 OpenShift UI Events webpage를 사용하는 것을 권장합니다.Cassandra 클러스터 설정
다음 단계는 그룹을 만드는 것입니다.다음 배치 파일은 3 노드 그룹을 만들었습니다.이것은 주로 상위 카스 Operator 버전 1.7.0 파일example-cassdc-minimal.yaml의 복사본이지만, 모든 POD를 같은 작업 노드에 배치할 수 있는 작은 수정이 있습니다. (CodeReady 용기는 기본적으로 k8s 노드만 사용하기 때문입니다.)
❯ oc apply -n cass-operator -f https://thelastpickle.com/files/openshift-intro/cass-operator-1.7.0-openshift-minimal-3.11.yaml
cassandradatacenter.cassandra.datastax.com/dc1 created
kubectl get pods …
watch 명령을 사용하여pod의 생성, 초기화, 최종 운행을 관찰합시다.❯ kubectl get pods -w -n cass-operator
NAME READY STATUS RESTARTS AGE
cass-operator-7675b65744-28fhw 1/1 Running 0 102s
cluster1-dc1-default-sts-0 0/2 Pending 0 0s
cluster1-dc1-default-sts-1 0/2 Pending 0 0s
cluster1-dc1-default-sts-2 0/2 Pending 0 0s
cluster1-dc1-default-sts-0 2/2 Running 0 3m
cluster1-dc1-default-sts-1 2/2 Running 0 3m
cluster1-dc1-default-sts-2 2/2 Running 0 3m
Cassandra 클러스터 사용
카스텔라 크레인의 작동과 운행에 따라 집단을 사용해도 된다.
nodetool status
명령을 사용하여 테스트합니다.❯ kubectl -n cass-operator exec -it cluster1-dc1-default-sts-0 -- nodetool status
Defaulting container name to cassandra.
Use 'kubectl describe pod/cluster1-dc1-default-sts-0 -n cass-operator' to see all of the containers in this pod.
Datacenter: dc1
===============
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 10.217.0.73 84.42 KiB 1 83.6% 672baba8-9a05-45ac-aad1-46427027b57a default
UN 10.217.0.72 70.2 KiB 1 65.3% 42758a86-ea7b-4e9b-a974-f9e71b958429 default
UN 10.217.0.71 65.31 KiB 1 51.1% 2fa73bc2-471a-4782-ae63-5a34cc27ab69 default
The above command can be run on `cluster1-dc1-default-sts-1` and `cluster1-dc1-default-sts-2` too.
다음은 테스트cqlsh
.이러한 인증이 필요하므로 먼저 CQL 사용자 이름과 암호를 가져옵니다.# Get the cql username
❯ kubectl -n cass-operator get secret cluster1-superuser -o yaml | grep " username" | awk -F" " '{print $2}' | base64 -d && echo ""
# Get the cql password
❯ kubectl -n cass-operator get secret cluster1-superuser -o yaml | grep " password" | awk -F" " '{print $2}' | base64 -d && echo ""
❯ kubectl -n cass-operator exec -it cluster1-dc1-default-sts-0 -- cqlsh -u <cql-username> -p <cql-password>
Connected to cluster1 at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.11.7 | CQL spec 3.4.4 | Native protocol v4]
Use HELP for help.
cluster1-superuser@cqlsh>
청결을 유지하다
CodeReady 용기는 특히 OpenShift의 포장이기 때문에 개발 목적에만 사용됩니다."모든 컨텐츠를 지우려면""삭제"""
❯ crc stop
❯ crc delete
다른 한편, 한 단계만 삭제하고 싶으면 다음과 같은 각 단계를 수행할 수 있습니다(순서대로).❯ oc delete -n cass-operator -f https://thelastpickle.com/files/openshift-intro/cass-operator-1.7.0-openshift-minimal-3.11.yaml
❯ oc delete -f https://raw.githubusercontent.com/k8ssandra/cass-operator/v1.7.0/docs/user/cass-operator-manifests.yaml
❯ oc delete -f cass-operator-1.7.0-openshift-storage.yaml
Reference
이 문제에 관하여(OpenShift 및 CodeReady 컨테이너에서 데이터베이스 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/datastax/running-your-database-on-openshift-and-codeready-containers-5f94텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)