Kubernetes�ł��f�[�^�x�[�X��{�i�^�p�\�\�uPostgreSQL Operator PGO�v���g���|���FCloud Native�`�[�g�V�[�g�i19�j

Kubernetes��N���E�h�l�C�e�B�u�����֗��ɗ��p����Z�p��c�[���̊T�v�A�g�������Ïk���ďЉ��A�ځB����́AOperator�𗘗p���āAKubernetes��Ńf�[�^�x�[�X�𓮍삳������@�Ƃ��̗��_���Љ�܂��B

» 2022�N08��10�� 05��00�� ���J
[���z�~, ���{���j, ����E�k�C�������NTT�f�[�^]

���̋L���͉������ł��B����o�^�i�����j����ƑS�Ă������������܂��B

�@Kubernetes��N���E�h�l�C�e�B�u�����֗��ɗ��p����Z�p��c�[���̊T�v�A�g�������Ïk���ďЉ��{�A�ځuCloud Native�`�[�g�V�[�g�v�B�A�ڑ�8���ł́A�uOperator�v�𗘗p����Kubernetes���g��������@���Љ�܂����B

�@����͂���Operator�𗘗p���āAKubernetes��ŁuPostgreSQL�v�𓮍삳������@�Ƃ��̗��_���Љ�܂��B

�Ȃ�DB��Kubernetes��œ������̂�

DB�}�X�^�[�F���AKubernetes�Ńf�[�^�x�[�X�iDB�j�𓮂��������ƂȂ��́H

DB���S�ҁFKubernetes���DB�𓮂����Ă�����ł����H�@���������́uKubernetes���DB�͐�Γ������ȁv���Č����Ă܂�����B

DB�}�X�^�[�F����́A����������񂾂��ɏ�񂪌Â��ˁB���́AOperator���Ă����֗��Ȃ��񂪂����āA���S���S��DB���^�p�ł���񂾂�B

�@���āA���������Ȃ�DB��Kubernetes��œ������̂ł��傤���H

�@���낢��ȃ��`�x�[�V����������Ƃ͎v���܂����A�I���v���~�X��Kubernetes�𗘗p���Ă���ꍇ�A�uAmazon Relational Database Service�v�iRDS�j�̂悤�ȃN���E�h�x���_�[���񋟂���DB�T�[�r�X�𗘗p�ł��Ȃ��̂ŁA������PostgreSQL�̂悤�ȃI�[�v���\�[�X�\�t�g�E�F�A�iOSS�j��DB���\�z�������Ƃ����P�[�X������ł��傤�B

�@�������PostgreSQL��Pod���N�����邾���Ȃ�ADB�̃R���e�i�C���[�W�𗘗p�ł��܂����A�Ϗ�Q����X�P�[���r���e�B�A�o�b�N�A�b�v�⃂�j�^�����O�܂ōl����ƁAPostgreSQL�{�̈ȊO�ɂ����܂��܂ȃv���_�N�g��A���̐݌v�ƊǗ����K�v�ɂȂ�܂��B

�@�܂��A�A�v���P�[�V�����̃}�C�N���T�[�r�X�����i�ނɂ‚�āA�P��̋����DB�ł͂Ȃ��A�T�[�r�X���Ƃɏ������ɂ���DB���쐬����\���������悤�ɂȂ�܂��B���̏ꍇ�A������DB���Ǘ�����K�v������܂����A�]���̉^�p�ł�DB�̐�����������ɂ‚�ĉ^�p�R�X�g�������������ł��B

�@���̂悤�Ȕw�i�̉��A������DB�������I�ɊǗ����邽�߂ɁADB���uDeployment�v�uStatefulSet�v�Ȃǂ̂悤��Kubernetes�̃��\�[�X�Ƃ��Ĉ��������Ƃ����̂����ɂ���P�[�X�ł��B

�@���̓_�A�uPostgreSQL Operator�v�𗘗p����΁A�^�p�ɕK�v�Ȃ��̂���ʂ肻�����PostgreSQL�N���X�^���ȒP�ɍ\�z�ł��A���̃A�v���P�[�V�������lKubernetes��̃��\�[�X�Ƃ��ĉ^�p�ł��܂��B

PostgreSQL Operator�ɂ����낢�날��

�@�{�L���ł́APostgreSQL Operator�𓮂����ėᎦ���Ȃ���A���̎�y����Kubernetes���DB�𓮂������_�����Ă����܂��B

�@2022�N7�����݁APostgreSQL Operator�́APostgreSQL�J���R�~���j�e�B�[�������ɊJ���A�񋟂��Ă�����̂͂���܂���B���܂��܂Ȋ�Ƃ�R�~���j�e�B�[�����ꂼ��J������PostgreSQL Operator��񋟂��Ă���󋵂ł��i��1�j�B

��1�FPostgreSQL Operator�̔�r�ɂ‚��ẮANTT�f�[�^�����J���Ă����X���C�h������̂ŁAPostgreSQL Operator���Ƃ̋@�\�̈Ⴂ��APGO�ȊO��Operator�ɋ����̂�����͂���������Q�Ƃ��������B

�@����͐�����PostgreSQL Operator�̒��ł��APostgreSQL�R�A�J���҂������ݐЂ�����Crunchy Data���J�����哱���Ă���uPGO�v�����グ�܂��B

PGO���쐬����PostgreSQL�‹��̃A�[�L�e�N�`��

�@���񗘗p����@�\�͈̔͂ŁAPGO���쐬����PostgreSQL�N���X�^�̊T�v��}�����܂��B

�@PostgreSQL�̃C���X�^���X�ɂ́A�Q�Ɓ^�X�V�����̃��N�G�X�g�������”\�ȃv���C�}���ƁA�Q�Ƃ̂ݏ����”\�ȃ��[�h���v���J�iPostgreSQL�ł͒ʏ�u�z�b�g�X�^���o�C�v�Ƃ����܂��j������܂����A��̐}�ł́A�v���C�}���ƃ��[�h���v���J�p��Pod�����ꂼ��1�C���X�^���X���‹N�����Ă����Ԃ������Ă��܂��B��قlj������悤�ɁAPGO�ł�2��ȏ�̃��[�h���v���J��lj����邱�Ƃ��”\�ł��B

�@PostgreSQL�����삷��Pod���ɂ́APostgreSQL��database�R���e�i�̑��A�ݒ�t�@�C����ؖ������X�V����R���e�i�A�o�b�N�A�b�v�T�[�o�ƒʐM����T�C�h�J�[�R���e�i���N�����܂��B�I�v�V�����Ń��j�^�����O�p�̏����G�N�X�|�[�g����T�C�h�J�[�R���e�i���N���ł��܂��B

�@PostgreSQL��Pod��StatefulSet����Ǘ�����܂��B���[�h���v���J��lj������ꍇ�A�V����StatefulSet���쐬���܂��B�ʏ�1�‚�StatefulSet�̃��v���J���𑝂₷�Ƃ���ł����APGO�ł͂��ꂼ��Ɨ�����StatefulSet���쐬���܂��B�������قnj���悤�ɁAPGO���eStatefulSet���Ǘ����邱�ƂŁAStatefulSet�g�ݍ��݂̃��[�����O�A�b�v�f�[�g�����APostgreSQL�̏�Ԃ𓥂܂����_��ȃA�b�v�f�[�g�ɂȂ�܂��B

�@�v���C�}���ƃ��[�h���v���J���ꂼ��ɃA�N�Z�X����Service���쐬����܂��B���[�U�[�͂�����Service�ɃA�N�Z�X���邱�ƂŁA�n�؂�ւ��Ȃ�PostgreSQL�N���X�^�����̏�Ԃ��ω����Ă��A������ӎ����邱�ƂȂ�PostgreSQL�ɃA�N�Z�X�ł��܂��B

�@�o�b�N�A�b�v�T�[�o�p��StatefulSet���쐬����܂��B�o�b�N�A�b�v�ɂ�PostgreSQL�p�̃o�b�N�A�b�v�\�t�g�E�F�A�upgBackRest�v���g�ݍ��܂�Ă��܂��B

PGO���g���ăI�[���C��������PostgreSQL�‹������

Kubernetes�N���X�^�̏���

�@����m�F�p��Kubernetes�N���X�^���������܂��B

�@PGO��Kubernetes�AOpenShift�ARancher�AGoogle Kubernetes Engine�iGKE�j�AAmazon Elastic Kubernetes Service�iEKS�j�Ƃ������v���b�g�t�H�[����œ���m�F����Ă��܂��BKubernetes�́A1.20�ȏ�̃o�[�W�������T�|�[�g�ΏۂƂȂ��Ă��܂��B�T�|�[�g����Ă���e�v���b�g�t�H�[���̃o�[�W�����������T�C�g���Q�Ƃ��Ă��������B

�@�����̃v���b�g�t�H�[���̑��A�uminikube�v�ukind�v�Ȃǂł����p�”\�ł��B

�@�p�ӂ����‹��Ńf�t�H���g�́uStorage Class�v�����݂��邱�Ƃ��m�F���܂��B����́APostgreSQL�N���X�^���쐬����Ƃ��ȂǁA�{�����[���𓮓I�ɕ����o�����߂ɗ��p����܂��B�Ȃ��A�J�X�^�����\�[�X�̃}�j�t�F�X�g�Ŏw�肷��΁A�f�t�H���g�ȊO��Storage Class�𗘗p���邱�Ƃ��ł��܂��B

�@�������minikube�𗘗p�����ꍇ�̗�ł��B

$ kubectl get sc
NAME                 PROVISIONER                RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
standard (default)   k8s.io/minikube-hostpath   Delete          Immediate           false                  54s

PGO�̃C���X�g�[��

�@PGO�͎��M���_�̍ŐV�o�[�W�����A5.1.1�𗘗p���܂��BCrunchy Data��PGO�̃C���X�g�[�����ނ�APostgreSQL�N���X�^���쐬����uKustomize�v�̃T���v���Ȃǂ�GitHub��Ɍ��J���Ă���̂ŁA��������N���[�����܂��B

$ git clone https://github.com/CrunchyData/postgres-operator-examples.git

�@�N���[�������f�B���N�g���Ɉړ����܂��B�ȍ~�̍�Ƃ͖{�f�B���N�g�����Ŏ��{���܂��B

$ cd postgres-operator-examples

�@�{�L�������M�������_�̃R�~�b�gID���w�肵�ău�����`���쐬�A�`�F�b�N�A�E�g���܂��B

�@HEAD�𗘗p����ꍇ�A�{�L���Ƃ͓��삪�ς��”\��������̂ŁA�����h�L�������g���Q�Ƃ��Ă��������B

$ git checkout -b pgotest 12085b73c85f3c30f0a0b1d3f5fe17b22c3eede3

�@Kustomize�ɂ����Operator�̃C���X�g�[����PostgreSQL�N���X�^�̍\�����e���v���[�g������Ă���̂ŁA����𗘗p���܂��B���̒ʂ���s���邱�ƂŁAPGO�p��Namespace�upostgres-operator�v���쐬����APGO���C���X�g�[������܂��B

$ kubectl apply -k kustomize/install/namespace
$ kubectl apply --server-side -k kustomize/install/default

�R�����@�u--server-side�v�I�v�V�����ɂ‚���

�@�ukubectl apply�v�R�}���h�����s����ƁA�����ł̓}�j�t�F�X�g��Kubernetes�N���X�^�̍������m�F���A����������ꍇ���̕�����ύX���܂����A���̏����͏]��kubectl�ł̂݉”\�ł����B

�@���̂��߁A�����̒m��Ȃ��Ƃ���ŕʂ̐l��Kubernetes��ύX�����ꍇ�A���̕ύX�ɋC�t�����ƂȂ�kubectl apply�ŏ㏑�����Ă��܂�����Akubectl�ȊO�̃N���C�A���g���炱�̎d�g�݂𗘗p���悤�Ƃ����肷��ƁAkubectl�̃R�[�h�𗘗p����Ƃ������Ή����K�v�ƂȂ��肪����܂����B

�@�{���̑Ή��Ƃ��āA���̏�����kubectl�ł͂Ȃ�Kubernetes�Ŏ��{����d�g�݂��J������܂����B�����L��������I�v�V������--server-side�ł��B


�@Operator��Pod�́uSTATUS�v���uRunning�v�ɂȂ�܂ő҂��܂��B

$ kubectl -n postgres-operator get pods \
  --selector=postgres-operator.crunchydata.com/control-plane=postgres-operator \
  --field-selector=status.phase=Running
 
NAME                   READY   STATUS    RESTARTS   AGE
pgo-548fdd84bd-8hkhw   1/1     Running   0          12m

PostgreSQL�N���X�^�̍쐬

�@PGO��������J�n������APostgreSQL�N���X�^���쐬�ł��܂��B��̓I�ɂ́A�J�X�^�����\�[�X�Ƃ��āuPostgresCluster�v�𗘗p�ł���悤�ɂȂ�܂��B����𗘗p���邱�ƂŁAPostgreSQL�̃N���X�^���쐬���܂��B

�@�T���v���Ƃ��Ċ�‚���PostgreSQL�N���X�^�̍\�����p�ӂ���Ă��܂����A����͍ł��V���v����PostgreSQL1��\����Kustomize�ukustomize/postgres�v�𗘗p���܂��B

�@�}�j�t�F�X�g��K�p����O�ɁA���g���m�F���Ă݂܂��傤�B�ȉ��ukustomize/postgres/postgres.yaml�v�ɊȒP�Ȑ�����NjL���Ă��܂����A�ڍׂ₻�̑��ɐݒ�”\�ȍ��ڂɂ‚��ẮAPGO��CRD Reference���Q�Ƃ��Ă��������B

  1 apiVersion: postgres-operator.crunchydata.com/v1beta1
  2 kind: PostgresCluster # �J�X�^�����\�[�X��
  3 metadata:
  4   name: hippo # PostgreSQL�N���X�^�̖��O
  5 spec:
  6   image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.3-0 # PostgreSQL�̃R���e�i�C���[�W
  7   postgresVersion: 14 # PostgreSQL�̃o�[�W����
  8   instances: # PostgreSQL Pod�̐ݒ�
  9     - name: instance1
 10       dataVolumeClaimSpec: # PostgreSQL�̃f�[�^��ۑ�����PVC�iPersistent Volume Claim�j�̐ݒ�B�{�L�q�̏ꍇ�Adefault��Storage Class�𗘗p����PVC�𓮓I�ɍ쐬
 11        accessModes:
 12        - "ReadWriteOnce"
 13          resources:
 14          requests:
 15            storage: 1Gi
 16  backups:
 17    pgbackrest: # PostgreSQL�̃o�b�N�A�b�v�\�t�g�E�F�A�ApgBackRest�̐ݒ�
 18      image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.38-1 # pgBackRest�̃R���e�i�C���[�W
 19      repos: # �o�b�N�A�b�v�̕ۑ�����w��
 20      - name: repo1
 21        volume:
 22          volumeClaimSpec: # �o�b�N�A�b�v��ۑ�����PVC�̐ݒ�B�{�L�q�̏ꍇ�Adefault��Storage Class�𗘗p����PVC�𓮓I�ɍ쐬
 23            accessModes:
 24            - "ReadWriteOnce"
 25            resources:
 26              requests:
 27                storage: 1Gi

�@PostgresCluster���\�[�X��Kubernetes��ɍ쐬���܂��BKustomize��YAML����`����Ă���̂ŁA���̂悤�Ɂu-k�v�I�v�V�����𗘗p���ēK�p���܂��B

$ kubectl apply -k kustomize/postgres

�@PostgreSQL��Pod��STATUS��Running�ɂȂ�܂ő҂��܂��BYAML�t�@�C���Ŋm�F�����R���e�i�C���[�W�̃T�C�Y��1GB���x�Ƃ���Ȃ�ɑ傫���̂ŁA�����Pod�N���܂łɎ��Ԃ������邱�Ƃ�����܂��i��2�j���A�C���ɑ҂��܂��傤�B

��2�F�M�҂̊‹��ł�1���Ԃقǂ����邱�Ƃ�����܂����B

�@PostgreSQL�̃T�[�r�X��񋟂���R���e�i�̑��A��q�����ݒ�t�@�C����ؖ����̍X�V�A�o�b�N�A�b�v�T�[�o�ƒʐM����R���e�i���N�����A���v4�‚̃R���e�i���N�����܂��B

�@���̃R�}���h�ł́A�uhippo�v�Ƃ������O��PostgreSQL�N���X�^�ɂ‚��āAPostgreSQL�C���X�^���X�̏����擾���Ă��܂��B

$ kubectl -n postgres-operator get pods \
  --selector=postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/instance
 
  NAME                     READY   STATUS    RESTARTS   AGE
hippo-instance1-w7sc-0   4/4     Running   0          85m
 
$ kubectl -n postgres-operator get pod hippo-instance1-w7sc-0 \
  -o jsonpath="{.spec.containers[*].name}"
database replication-cert-copy pgbackrest pgbackrest-config

�@PostgreSQL�̃f�[�^�ۑ��p�A����уo�b�N�A�b�v�f�[�^�ۑ��p��PVC�������o����Ă��邱�Ƃ��m�F�ł��܂��B

$ kubectl -n postgres-operator get pvc
 
NAME                          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
hippo-instance1-w7sc-pgdata   Bound    pvc-d56cff2f-da29-4e0f-b317-0632c49d8731   1Gi        RWO            standard       47s
hippo-repo1                   Bound    pvc-94850c1e-ab9f-4f5e-aa22-d7cda2b60266   1Gi        RWO            standard       47s

�@�����PostgreSQL�̃T�[�r�X�����p�”\�ɂȂ�܂����B

PostgreSQL�ւ̐ڑ��m�F

�@�쐬����PostgreSQL�ɐڑ����āA�T�[�r�X�����p�ł��邱�Ƃ��m�F���܂��B�ڑ����Ƀp�X���[�h�F�؂��K�v�ɂȂ�̂ŁA�uSecret�v����p�X���[�h���m�F���܂��B���̗�p�X���[�h���‹��ϐ��uHIPPO_CLIENT_PGPASSWORD�v�ɕۑ����Ă��܂��B

$ HIPPO_CLIENT_PGPASSWORD=`kubectl -n postgres-operator get secret hippo-pguser-hippo -o json | jq -r .data.password | base64 --decode`

�@�N���C�A���g�Ƃ���Docker�����C���[�W�́upostgres�R���e�i�v�𗘗p���āA�e�X�g�p�Ƀe�[�u���ut1�v���쐬���āA1���f�[�^�𓊓����Ă݂܂��B�ڑ���́A�uhippo-ha�v�Ƃ���Service�������o����Ă���̂ŁA����𗘗p���܂��B

$ kubectl -n postgres-operator run --image=postgres:14 --restart=Never --rm -it client --env="PGPASSWORD=${HIPPO_CLIENT_PGPASSWORD}" --command -- bash
If you don't see a command prompt, try pressing enter.
root@client:/# psql -h hippo-ha -U hippo -d postgres
psql (14.4 (Debian 14.4-1.pgdg110+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
 
postgres=> CREATE TABLE t1(t TEXT);
CREATE TABLE
postgres=> INSERT INTO t1 VALUES ('test');
INSERT 0 1
postgres=> \q
root@client:/# exit
exit

�@����PostgreSQL�ɐڑ����A�T�[�r�X�𗘗p�ł��邱�Ƃ��m�F�ł��܂����B

Kubernetes��œ�������PostgreSQL�̉^�p�����m�F����

�@�@�\�I��PostgreSQL�̓�����m�F�ł��܂������A���ꂾ�����ƁAPGO�𗘗p�����A���ʂ�PostgreSQL�̃R���e�i�𗧂��グ���̑傫�ȈႢ�͂���܂���B

�@��������̓��j�^�����O�⃊�[�h���v���J�̒lj��A�o�[�W�����A�b�v�Ȃ�PGO�Œ񋟂����^�p�@�\�����Ă����܂��傤�B

�@��������}�j�t�F�X�g��ҏW���ēK�p���邱�ƂŁAPostgreSQL�N���X�^�̍\���ύX��^�p����������ł��܂��B

���j�^�����O�@�\�̒lj��Ɗm�F

�@kustomize/postgres/postgres.yaml��ҏW���܂��B28�`31�s�ڂ�V�K�ɒlj����Ă��܂��B

  1 apiVersion: postgres-operator.crunchydata.com/v1beta1
  2 kind: PostgresCluster
  3 metadata:
  4   name: hippo
  5 spec:
    ...(��)...
 16   backups:
    ...(��)...
 28   monitoring:
 29     pgmonitor:
 30       exporter:
 31         image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres-exporter:ubi8-5.1.1-0

�@�ύX��K�p���܂��B

$ kubectl apply -k kustomize/postgres

�@��قǂ܂ł́u4/4�v�������uREADY�v���A�u5/5�v�ɂȂ�A�R���e�i��1�’lj����ꂽ���Ƃ��m�F���܂��B�lj����ꂽ�R���e�i�́APrometheus�T�[�o����̃��N�G�X�g�ɉ�����PostgreSQL�̃��g���N�X��Ԃ��uExporter�v�ł��B

$ kubectl -n postgres-operator get pods --selector=postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/instance
NAME                     READY   STATUS    RESTARTS   AGE
hippo-instance1-w7sc-0   5/5     Running   0          28m

�@���g���N�X���擾�A�\������ɂ́A���j�^�����O�c�[�����K�v�ł��BPGO�ɂ́A�g�ݍ��݂̃��j�^�����O�c�[�����p�ӂ���Ă���̂ŁA�����ł́APGO�g�ݍ��݂̃��j�^�����O�c�[���i�uPrometheus�v�uGrafana�v�uAlertmanager�v�j���C���X�g�[�����܂��B

$ kubectl apply -k kustomize/monitoring

�@��������ePod��STATUS��Running�ɂȂ�܂ő҂��܂��B

$ kubectl -n postgres-operator get pods --selector=app.kubernetes.io/name=postgres-operator-monitoring
NAME                                    READY   STATUS    RESTARTS   AGE
crunchy-alertmanager-5fdb768b96-zf46n   1/1     Running   0          10m
crunchy-grafana-85799958b8-cbw8q        1/1     Running   0          10m
crunchy-prometheus-67b84d64b9-b29c6     1/1     Running   0          10m

�@�����Prometheus�AGrafana�AAlertmanager�����p�”\�ɂȂ�܂����B�����Ƀ|�[�g�t�H���[�h�𗘗p���ă��[�J���[���̃u���E�U����Grafana�ɃA�N�Z�X���Ă݂܂��B

�@���L�̃R�}���h�����[�J���[����Ŏ��s���A���[�J����3000�ԃ|�[�g��Grafana���N�����Ă���Pod��3000�ԃ|�[�g�Ƀ|�[�g�t�H���[�h���܂��B

$ GRAFANA=$(kubectl -n postgres-operator get pods -o name --selector=name=crunchy-grafana)
$ kubectl -n postgres-operator port-forward ${GRAFANA} 3000:3000

�@�u���E�U�Łuhttp://localhost:3000�v�ɃA�N�Z�X����ƁA���O�C����ʂ��\������܂��B�������[�U�[���ƃp�X���[�h�́A��������uadmin�v�ł����A���񃍃O�C����p�X���[�h�̕ύX�𑣂����̂ŕύX���Ă����܂��B

��Web�u���E�U���痘�p���Ă���N���E�h�R���\�[�����kubectl�R�}���h�����s���Ă���ꍇ�́A�|�[�g�t�H���[�h���ă��[�J����Web�u���E�U�ʼn�ʂ�\���ł��܂���B���[�J���̒[����kubectl�����ăR�}���h�����s���Ă��������B

�@�_�b�V���{�[�h����‚����Ă݂܂��傤�B

�@�uPostgreSQLDetails�v�_�b�V���{�[�h�ł́APostgreSQL�̓����̏󋵂��m�F�ł��܂��B�Ⴆ�΁APostgreSQL�ւ̐ڑ��̏󋵁iActive Connections�AIdle In Transaction�Ȃǁj�A�L���b�V���q�b�g���iCache Hit Ratio�j�ADB�T�C�Y�idatabase size�j�A���b�N�̎擾�󋵁iLocks�j�Ȃǂ��m�F�”\�ł��B

�@�uQuery Statistics�v�_�b�V���{�[�h�ł́APostgreSQL�����s�����N�G���̏����m�F�ł��܂��B�Ⴆ�΁ADB�N���X�^�S�̂̃N�G�������s�񐔁iQueries Executed�j����s���ԁiQuery Runtime�j�Ȃǂ̃}�N���ȏ��̑��ASQL�N�G�����Ƃ̕��ρ^�ő�^�����s���ԁiQuery Mean Runtime�AQuery Max Runtime�AQuery Total Runtime�j���m�F�ł��܂��B

�@���̑��ɂ���‚��_�b�V���{�[�h���p�ӂ���Ă���A�o�b�N�A�b�v�̏󋵂�Pod�̃��\�[�X���p�󋵂Ȃǂ��m�F�”\�ł��B

���[�h���v���J�̒lj�

�@�����܂�PostgreSQL��1�䂾���ł������A���[�h���v���J��lj����A�Q�Ɛ��\���X�P�[���A�E�g���Ă݂܂��傤�B

�@��قNJm�F�����ʂ�A����PostgreSQL�C���X�^���X��Pod��1�‚����ł��B����̓v���C�}����1�䂾�����삵�Ă��邱�Ƃ��Ӗ����܂��B

$ kubectl -n postgres-operator get pods \
  --selector=postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/instance
 
NAME                     READY   STATUS    RESTARTS   AGE
hippo-instance1-w7sc-0   5/5     Running   0          15m

�@kustomize/postgres/postgres.yaml��ҏW���A�v���C�}��1��A���[�h���v���J1��̍��v2��\���ɕύX���Ă݂܂��B10�s�ڂ�V�K�ɒlj����Ă��܂��B

  1 apiVersion: postgres-operator.crunchydata.com/v1beta1
  2 kind: PostgresCluster
  3 metadata:
  4   name: hippo
  5 spec:
  6   image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.3-0
  7   postgresVersion: 14
  8   instances:
  9     - name: instance1
 10       replicas: 2 
 11       dataVolumeClaimSpec:
    ...(��)...

�@�ύX��K�p���܂��B

$ kubectl apply -k kustomize/postgres

�@���΂炭����ƃ��[�h���v���J���N�����APod��2�‹N�����܂��B

$ kubectl -n postgres-operator get pods \
  --selector=postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/instance
 
NAME                     READY   STATUS    RESTARTS   AGE
hippo-instance1-w7sc-0   5/5     Running   0          16m
hippo-instance1-f8m4-0   5/5     Running   0          22s

�@�N���������[�h���v���J��SQL�N�G���𔭍s���Ă݂܂��B���[�h���v���J�ڑ��p�ɁA�uhippo-replicas�v�Ƃ���Service���p�ӂ���Ă���̂ŁA����𗘗p���܂��B

$ kubectl -n postgres-operator  run --image=postgres:14 --restart=Never \
    --rm -i client --env="PGPASSWORD=${HIPPO_CLIENT_PGPASSWORD}" \
    --command -- psql -h hippo-replicas -U hippo -d postgres -c "SELECT * FROM t1"
 
  t
------
 test
(1 row)

�@���[�h���v���J�͂��̖��̒ʂ�A�ǂݍ��ݐ�p�C���X�^���X�Ȃ̂ŁA�Q�ƃ��N�G�X�g�̃X�P�[���A�E�g�ɂ͗L���ł����A�X�V�n�̃N�G�������s�ł��܂���B���L�̗�ł̓e�[�u����V�K�쐬���悤�Ƃ��Ă��܂����A���s���Ă��܂��B

 $ kubectl -n postgres-operator  run --image=postgres:14 --restart=Never \
    --rm -i client --env="PGPASSWORD=${HIPPO_CLIENT_PGPASSWORD}" \
    --command -- psql -h hippo-replicas -U hippo -d postgres \
    -c "CREATE TABLE t2(t TEXT)"
 
ERROR:  cannot execute CREATE TABLE in a read-only transaction

�@���[�h���v���J�̑䐔��2��ȏ�ɑ��₵����A�C�ӂ̑䐔�Ɍ��炵���肷�邱�Ƃ��A�}�j�t�F�X�g��ύX���邱�ƂŊȒP�Ɏ����ł��܂��B�Ⴆ�΁A��قǃ}�j�t�F�X�g�ɒlj������ureplicas�v���u3�v�ɕύX���āi���L�R�[�h��10�s�ځj�}�j�t�F�X�g��K�p����ƁA�v���C�}��1��A���[�h���v���J2��̍��v3���PostgreSQL�N���X�^�Ɋg������܂��B

  1 apiVersion: postgres-operator.crunchydata.com/v1beta1
  2 kind: PostgresCluster
  3 metadata:
  4   name: hippo
  5 spec:
  6   image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.3-0
  7   postgresVersion: 14
  8   instances:
  9     - name: instance1
 10       replicas: 3
 11       dataVolumeClaimSpec:
    ...(��)...

�@���[�h���v���J���쐬����ɂ́A��ʓI�ɂ͎��̂悤�ȍ�Ƃ��K�v�ɂȂ�܂��B

  • ���[�h���v���J�p�̃m�[�h���쐬
  • PostgreSQL���C���X�g�[��
  • �v���C�}���̃f�[�^���擾
  • ���v���P�[�V�������J�n

�@Kubernetes��Operator�𗘗p���邱�ƂŁA�}�j�t�F�X�g��ҏW�A�K�p���邾���ŊȒP�Ƀ��[�h���v���J��lj��A�폜�ł��܂����B

���ȏC���̊m�F

�@��Q�Ȃǂɂ���āA�錾������ԂƎ��ۂ̏�Ԃ������i������j�����ꍇ�AKubernetes��Operator���錾������ԂɏC�����Ă���܂��B���̎��ȏC���̗l�q���A���炩�̏�Q�����������Ƒz�肵�A�v���C�}����PostgreSQL���~���Ċm�F���Ă݂܂��B

�@�upg_ctl stop -m immediate�v�R�}���h�����s���APostgreSQL�𑦎���~���܂��B

$ PG_CLUSTER_PRIMARY_POD=`kubectl get pod -n postgres-operator -o name \
  -l postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/role=master`
 
$ kubectl -n postgres-operator exec ${PG_CLUSTER_PRIMARY_POD} -- /usr/pgsql-14/bin/pg_ctl stop -m immediate
 
waiting for server to shut down.... done
server stopped

�@��~����Ƀv���C�}���ɐڑ�����ƁA�G���[�ɂȂ�܂��B

$ kubectl  -n postgres-operator  run --image=postgres:14 --restart=Never \
    --rm -i client --env="PGPASSWORD=${HIPPO_CLIENT_PGPASSWORD}" \
    --command -- psql -h hippo-ha -U hippo -d postgres -c "select 1"
 
psql: error: connection to server at "hippo-ha" (10.96.72.178), port 5432 failed: Connection refused
        Is the server running on that host and accepting TCP/IP connections?

�@���΂炭����ƒʏ�ʂ�ڑ��”\�ɂȂ�A���ȏC������Ă��邱�Ƃ��m�F�ł��܂��B

$ kubectl  -n postgres-operator  run --image=postgres:14 --restart=Never \
    --rm -i client --env="PGPASSWORD=${HIPPO_CLIENT_PGPASSWORD}" \
    --command -- psql -h hippo-ha -U hippo -d postgres -c "select 1"
 
 ?column?
----------
        1
(1 row)

�@���̂悤�Ȏ��ȏC���́AKubernetes�����ł��”\�Ȃ悤�ɂ��v���܂����AHA�i�n�C�A�x�C���r���e�B�j�\�t�g�E�F�A�uPatroni�v�����􂵂Ă��܂��B�����̂�����͉��L�R�������������������B

�R�����@HA�\�t�g�E�F�A�uPatroni�v���ĉ��H

�@Patroni�́AOSS��PostgreSQL����HA�\�t�g�E�F�A�ł��B

�@3�m�[�h�ȏ��PostgreSQL�N���X�^���e�Ղɍ쐬�”\�ŁA�I���v���~�X��Kubernetes��ł����삷�邱�Ƃ���A�uStackGres�v�Ȃ�PGO�ȊO��PostgreSQL Operator�ł����p����Ă��܂��B

�@Patroni�̑�܂��Ȏd�g�݂́A���̒ʂ�ł��B

  1. PostgreSQL�̑䐔��Patroni�f�[���������삵�A�ePostgreSQL�̉ғ��󋵂����j�^�����O
  2. ���j�^�����O���ʂ��uetcd�v�uZookeeper�v�ȂǍ�����ѐ������ƒf�[�^�X�g�A�ɕۑ��B���̃f�[�^�X�g�A���Q�Ƃ��邱�ƂŁA�ePatroni�́APostgreSQL�N���X�^�S�̂̏�Ԃ�c��
  3. �c��������Ԃɉ�����PostgreSQL�𑀍�

�@Kubernetes�����ȏC���\�͂����邱�Ƃ���APatroni�܂ŕK�v���ǂ����^��Ɋ�����������邩������܂���B�������ADB�̉—p�������߂�ɂ́ADBMS�����̏������܂�����ŁA���퐫��n�؂�ւ��𔻒f����K�v������̂ŁAKubernetes�����ł͏\���ȑΉ�������̂ł��B

�@�Ⴆ�΁A�v���C�}���̃_�E����A�����䑶�݂��郊�[�h���v���J����V�v���C�}����I�o����ꍇ�A���̏����������Ȃ�΁A�e���[�h���v���J�̂����ł����v���P�[�V�����̒x�������������̂�V�v���C�}���Ƃ��đI�o���ׂ��ł��傤�B���̂悤�Ȕ��f��Patroni�ɂ���Ď�������܂��B


PostgreSQL�̃o�[�W�����A�b�v

�@PostgreSQL�͔N�Ɉ�x�̃��W���[�o�[�W�����A�b�v�ŐV�@�\���lj�����鑼�A�}�C�i�[�o�[�W���������Ȃ��Ƃ�3�J���Ɉ�x�����[�X���܂��B�o�[�W�����̕\�L�́AX.Y�̌`�����Ƃ�AX�����W���[�o�[�W�����ԍ��AY���}�C�i�[�o�[�W�����ł��B�u14.3�v�̏ꍇ�A���W���[�o�[�W������14�A�}�C�i�[�o�[�W������3�ł��B

�@�}�C�i�[�o�[�W�����̓o�O��Z�L�����e�B��̖����C�����郊���[�X�Ȃ̂ŁA��{�I�ɗ��p���Ă��郁�W���[�o�[�W�������̍ŐV�̃}�C�i�[�o�[�W�����ɃA�b�v�f�[�g���Ă������Ƃ��]�܂����ł��B

�@���̃}�C�i�[�o�[�W�����A�b�v�Ή����}�j�t�F�X�g����ȒP�ɂł��܂��i��3�j�B��̓I�ɂ́A�}�j�t�F�X�g���PostgreSQL�̃R���e�i�C���[�W��ύX����΁APGO�����[�����O�A�b�v�f�[�g�����Ă���܂��B���[�����O�A�b�v�f�[�g���͌n�؂�ւ�����������̂ŁAPostgreSQL�̃T�[�r�X���ꎞ�I�ɒ�~���܂��B

��3�F���W���[�o�[�W�����A�b�v��PGO 5.1����T�|�[�g����Ă��܂��B�}�C�i�[�o�[�W�����A�b�v�ɔ�ׂ�Ǝ菇�������܂����A�����̂������Crunchy Data�̃u���O���Q�Ƃ��Ă��������B

�@PGO�����p�”\�ȃR���e�i�C���[�W��Crunchy Data�����J���Ă��܂��B�����܂ŁA2022�N7���̎��M���_�Ń��W���[�A�}�C�i�[�Ƃ��ɃR���e�i�C���[�W�����݂���ŐV�o�[�W����14.3�𗘗p���Ă���̂ŁA��������14.2�ɕύX������A14.3�ɃA�b�v�f�[�g���܂��B

�@kustomize/postgres/postgres.yaml��6�s�ڂ�ҏW���A�R���e�i�C���[�W���uubi8-14.3-0�v����uubi8-14.2-1�v�ɕύX���܂��i��4�j�B

��4�F2022�N7���̎��M���_�ł́A14.2-1�R���e�i�C���[�W�����p�”\�Ȃ��Ƃ��m�F���Ă��܂����A�C���[�W�̃_�E�����[�h�Ɏ��s����Ȃǂ����ꍇ�ACrunchy Data�Ђ����J���Ă���ŐV��PostgreSQL14�̃R���e�i�C���[�W�������T�C�g����m�F���A�K�X���p�”\�ȃC���[�W��I�����Ă��������B

�@�n�C�t�����O��PostgreSQL�̃o�[�W�����A�n�C�t���̌�̐�����PGO�̃R���e�i�C���[�W�̃o�[�W�����ł��B6�s�ڂ�ύX���Ă��܂��B

  1 apiVersion: postgres-operator.crunchydata.com/v1beta1
  2 kind: PostgresCluster
  3 metadata:
  4   name: hippo
  5 spec:
  6   image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.2-1
    ...(��)...

�@�ύX��K�p���܂��B

$ kubectl apply -k kustomize/postgres

�@���L�R�}���h�����s���A�R���e�i�C���[�W��ubi8-14.2-1�ɕύX���ꂽ���Ƃ��m�F���܂��B

$ kubectl -n postgres-operator get pods \
  --selector=postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/instance \
  -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.postgres-operator\.crunchydata\.com/role}{"\t"}{.status.phase}{"\t"}{.spec.containers[].image}{"\n"}{end}'
 
hippo-instance1-w7sc-0  replica Running registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.2-1
hippo-instance1-f8m4-0  master  Running registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.2-1

�@�N���X�^�����\�z�����l�R���e�i�C���[�W�̃T�C�Y������Ȃ�ɑ傫���̂ŁAPod�N���܂łɎ��Ԃ������邱�Ƃ�����܂����A��͂�C���ɑ҂��܂��傤�B

�@���āA��قǕύX����kustomize/postgres/postgres.yaml��6�s�ڂ̃R���e�i�C���[�W��ubi8-14.3-0�ɖ߂��A�}�j�t�F�X�g��K�p���Ă݂܂��傤�B���x�̓R���e�i�C���[�W�����Ƀ_�E�����[�h�ς݂Ȃ̂ŁA�Z���ԂŊ�������͂��ł��B

�@���[�����O�A�b�v�f�[�g�́A�܂����v���J������{����܂��B���̌�X�C�b�`�I�[�o���A���v���C�}�����A�b�v�f�[�g���ꊮ���ƂȂ�܂��B�A�b�v�f�[�g����������ƁA�ȉ��̂悤�ɃR���e�i�C���[�W�̃o�[�W������ubi8-14.3-0�ɍX�V����܂��B

$ kubectl -n postgres-operator get pods \
  --selector=postgres-operator.crunchydata.com/cluster=hippo,postgres-operator.crunchydata.com/instance \
  -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.postgres-operator\.crunchydata\.com/role}{"\t"}{.status.phase}{"\t"}{.spec.containers[].image}{"\n"}{end}'
 
hippo-instance1-w7sc-0  master  Running registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.3-0
hippo-instance1-f8m4-0  replica Running registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.3-0

�@���[�����O�A�b�v�f�[�g�ɂ���ăv���C�}���imaster�j�ƃ��[�h���v���J�ireplica�j������ւ���Ă��邱�Ƃ��m�F�ł��܂��B

�����o�b�N�A�b�v�ƃ��X�g�A

�@PostgreSQL�Ɋi�[�����f�[�^�̃o�b�N�A�b�v�̉^�p���A�}�j�t�F�X�g��ɐ錾���邱�ƂŎ����ł��܂��B�Ⴆ�΁A�J�n�������w�肵�������o�b�N�A�b�v�̒�`��A�擾�����o�b�N�A�b�v�f�[�^�𗘗p���ĐV�K��PostgreSQL�N���X�^���쐬�ł��܂��B

�@����͎����o�b�N�A�b�v�̐ݒ�ƃ��X�g�A�̎菇���m�F���Ă݂܂��B�o�b�N�A�b�v�̕ۑ���́AAmazon S3��S3�݊��̃I�u�W�F�N�g�X�g���[�W�Ȃǂ��I���”\�ł��i��5�j�B�����default��Storage Class���V�K�ɍ쐬����PVC�𗘗p���܂��B

��5�F���̑��Ή����Ă���X�g���[�W�́A�����h�L�������g���Q�Ƃ��Ă��������B

�@kustomize/postgres/postgres.yaml��ҏW���A����5���Ƀt���o�b�N�A�b�v���擾����悤�ɐݒ肵�܂��i��6�j�B

��6�F1���Ԃ�1��Ƃ������p�x�ł̃t���o�b�N�A�b�v���擾���邱�ƂɂȂ�܂����A����͓�����m�F���邽�߂̐ݒ�ł��B���p����ۂ́A�o�b�N�A�b�v�v���𓥂܂��Đݒ肵�Ă��������B

�@���s�����̎w��l����cron�Ɠ��l�ł��B22�`23�s�ڂ�V�K�ɒlj����Ă��܂��B�茳�̊‹��Ŋm�F����ۂ́A������Ƀo�b�N�A�b�v���J�n����悤�ɐݒ肷��Ƃ悢�ł��傤�B

  1 apiVersion: postgres-operator.crunchydata.com/v1beta1
  2 kind: PostgresCluster
   ..(��)..
 17   backups:
 18     pgbackrest:
 19       image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.38-1
 20       repos:
 21       - name: repo1
 22       schedules:
 23         full: "5 * * * *"

�@�ύX��K�p����ƁA�Ή�����cronjob���lj�����܂��B

$ kubectl apply -k kustomize/postgres
 
$ kubectl -n postgres-operator get cronjobs
NAME               SCHEDULE     SUSPEND   ACTIVE   LAST SCHEDULE   AGE
hippo-repo1-full   5 * * * *   False     0        <none>          8s

�@�w�肵�������ɂȂ�ƃo�b�N�A�b�v�����s����Pod���N�����܂��B���΂炭����ƃo�b�N�A�b�v���������ASTATUS��Completed�ɕω����܂��B

$ kubectl -n postgres-operator get pods --selector=postgres-operator.crunchydata.com/pgbackrest-cronjob=full
NAME                              READY   STATUS      RESTARTS   AGE
hippo-repo1-full-27617165-kl87w   0/1     Completed   0          9m16s

�@����Ńo�b�N�A�b�v���擾�ł��܂����B�����ă��X�g�A���܂��傤�B�o�b�N�A�b�v�f�[�^�𗘗p���āA�V����PostgreSQL�N���X�^���\�z���邽�߂ɁA���L�́urestore.yaml�v�Ƃ����}�j�t�F�X�g��V�K�ɍ쐬���܂��B4�`10�s�ڂŁA�uelephant�v�Ƃ���PostgreSQL�N���X�^���쐬���A�f�[�^�Ƃ��Đ�قǎ擾�����o�b�N�A�b�v�𗘗p����悤��`���Ă��܂��B

  1 apiVersion: postgres-operator.crunchydata.com/v1beta1
  2 kind: PostgresCluster
  3 metadata:
  4   name: elephant # PostgreSQL�N���X�^�̖��O
  5   namespace: postgres-operator
  6 spec:
  7   dataSource:
  8     postgresCluster:
  9       clusterName: hippo
 10       repoName: repo1
 11   image: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.3-0
 12   postgresVersion: 14
 13   instances:
 14     - dataVolumeClaimSpec:
 15         accessModes:
 16         - "ReadWriteOnce"
 17         resources:
 18           requests:
 19             storage: 1Gi
 20   backups:
 21     pgbackrest:
 22       image: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.38-1
 23       repos:
 24       - name: repo1
 25         volume:
 26           volumeClaimSpec:
 27             accessModes:
 28             - "ReadWriteOnce"
 29             resources:
 30               requests:
 31                 storage: 1Gi

�@�}�j�t�F�X�g��K�p���܂��B

$ kubectl apply -f restore.yaml

�@���΂炭����ƃ��X�g�A���������A�V����PostgreSQL�N���X�^���N�����܂��B���L��selector�Ŏw�肵��Pod��STATUS��Running�ɂȂ�܂ő҂��܂��傤�B

$ kubectl -n postgres-operator get pods --selector=postgres-operator.crunchydata.com/cluster=elephant,postgres-operator.crunchydata.com/instance
NAME                 READY   STATUS    RESTARTS   AGE
elephant-00-79cc-0   4/4     Running   0          2m16s

�@���X�g�A����PostgreSQL�N���X�^�p��Service�ł���uelephant-ha�v�ɐڑ�����ƁA�o�b�N�A�b�v���擾����PostgreSQL�N���X�^�ɓ��������f�[�^�����݂��邱�Ƃ��m�F�ł��܂��B

$ kubectl -n postgres-operator run --image=postgres:14 --restart=Never \
    --rm -i client --env="PGPASSWORD=${HIPPO_CLIENT_PGPASSWORD}" \
    --command -- psql -h elephant-ha -U hippo -d postgres \
  -c 'select * FROM t1'
  t
------
 test
(1 row)

�@�o�b�N�A�b�v�^���X�g�A�ɂ‚��ẮA����Љ�����e�ȊO�ɂ����̂悤�ȋ@�\���T�|�[�g����Ă��܂��B

  • �����^�����o�b�N�A�b�v
  • �ۑ�����o�b�N�A�b�v���㐔�̊Ǘ�
  • �C�ӂ̃^�C�~���O�ł̎蓮�o�b�N�A�b�v
  • ���J�o���[�|�C���g���w�肵�����X�g�A�iPITR�j
  • �o�b�N�A�b�v���擾����PostgreSQL�N���X�^�ւ̃��X�g�A

�@�����̂�����͂�����������h�L�������g�́u�o�b�N�A�b�v�v�u���X�g�A�v���Q�Ƃ��Ă��������B

PGO�𗘗p����ۂ̒��ӓ_

�@�ȉ��A��‚�PGO�𗘗p����ۂ̒��ӓ_���L�ڂ��܂��B

�������݉”\�ȃv���C�}���̓X�P�[���A�E�g���Ȃ�

�@���[�h���v���J�͊ȒP�ɒlj��ł��܂������A��قNJm�F�����ʂ�A����͂����܂ŎQ�ƃ��N�G�X�g�̂݉”\�ȃC���X�^���X�ł��B�X�V���N�G�X�g�������ł���v���C�}����1��̂܂܂Ȃ̂ŁA�������ݐ��\���X�P�[���A�E�g�����邱�Ƃ͂ł��܂���B

�}�j�t�F�X�g������{�ł��Ȃ����������

�@Kubernetes�̃}�j�t�F�X�g��ҏW�A�K�p���邱�Ƃł��܂��܂ȉ^�p���ł��邱�Ƃ����Ă��܂������A�}�j�t�F�X�g����͎��{�ł��Ȃ����������܂��B�Ⴆ�΁A�擾�����o�b�N�A�b�v�̈ꗗ���m�F���鑀��́A�}�j�t�F�X�g�o�R�ł͂ł��܂���B���L�̂悤�ɃR���e�i��Œ��ڃo�b�N�A�b�v�c�[���̃R�}���h�Ŏ��s����Ȃǂ��K�v�ł��B

$ kubectl -n postgres-operator exec hippo-repo-host-0 -c pgbackrest -- pgbackrest info
 
stanza: db
    status: ok
    cipher: none
    db (current)
        wal archive min/max (14): 000000010000000000000001/00000003000000000000005D
 
        full backup: 20220705-115307F
            timestamp start/stop: 2022-07-07 11:53:07 / 2022-07-07 11:53:51
            wal start/stop: 000000010000000000000004 / 000000010000000000000004
            database size: 33.9MB, database backup size: 33.9MB
            repo1: backup set size: 4.3MB, backup size: 4.3MB
        ..(��)
        full backup: 20220705-120802F
            timestamp start/stop: 2022-07-07 12:08:02 / 2022-07-05 12:08:10

�X�g���[�W�\�t�g�E�F�A�͓�������Ă��Ȃ�

�@�Ď��^HA�Ȃǂ��܂��܂Ȏ��Ӄ\�t�g�E�F�A��@�\�������i�ǂ�����j����Ă���PGO�ł����A�X�g���[�W�ɂ‚��Ă͓��ɗp�ӂ���Ă��܂���BDB�����p����X�g���[�W�̐��\��M�����́A�T�[�r�X�i���ɒ������܂��B����default��storage class�𗘗p���܂������APGO�ł͔C�ӂ�storage class���w��ł���̂ŁADB�̗p�r�◘�p����‹��ɉ����ēK�؂ȃX�g���[�W��I�����܂��傤�B

�܂Ƃ�

�@����́APostgreSQL Operator�Ƃ���PGO���Љ�A��‚���v�ȋ@�\��������܂����BKubernetes���PostgreSQL�𓮍삳���邱�ƂŁA�錾�I��PostgreSQL�N���X�^���Ǘ��”\�ɂȂ�A�^�p�������シ�邱�Ƃ������ł����̂ł͂Ȃ��ł��傤���B

�@���ӓ_�����܂�����ŁA�I���v���~�X��Kubernetes�ł�DB�\�z��AKubernetes�̃��\�[�X�Ƃ���DB���^�p�����i�Ƃ��āAPostgreSQL Operator�̗��p���������Ă݂ł͂������ł��傤���B

Copyright © ITmedia, Inc. All Rights Reserved.

�X�|���T�[����̂��m�点PR

���ڂ̃e�[�}

4AI by ��IT - AI�����A�������A���A������
Microsoft �� Windows�őO��2025
AI for �G���W�j�A�����O
���[�R�[�h�^�m�[�R�[�h �Z���g���� by ��IT - IT�G���W�j�A���r�W�l�X�̒��S�Ŋ��􂷂�g�D��
Cloud Native Central by ��IT - �X�P�[���u���Ȕ\�͂�g�D��
�V�X�e���J���m�E�n�E �y�����i�r�zPR
���Ȃ��ɂ������߂̋L��PR

RSS�ɂ‚���

�A�C�e�B���f�B�AID�ɂ‚���

���[���}�K�W���o�^

��IT�̃��[���}�K�W���́A �������A���ׂĖ����ł��B���Ѓ��[���}�K�W�������w�ǂ��������B