본문 바로가기
클라우드 기초/VMware

[Openshift] 이미지 레지스트리 구성, 프로젝트 생성 및 mysql pod 생성

by 라라쇼퍼 2023. 8. 24.
반응형
oc get co

 

기존의 image registry는 로컬에 디폴트로 있던건데 이를 삭제하고 새로 구성해봅니다. 


이미지 레지스트리 구성하기 

 

먼저 selinux on 상태에서 nfs 사용가능하도록 설정해주기

setsebool -P virt_use_nfs 1

 

pv 생성하기

mkdir /root/data/pv/

cd /root/data/pv

vi image-registry-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: registry-pv
spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 100Gi
  nfs:
    server: 10.10.10.3
    path: /mnt/Openshift/registry
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs-retain
oc apply -f image-registry-pv.yaml -n openshift-image-registry

 

oc get co로 확인

 

 

pvc 생성하기 

 

vi image-registry-pvc.yaml
apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
  name: "registry-claim"
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Gi
  storageClassName: nfs-retain
  volumeMode: Filesystem
oc apply -f image-registry-pv.yaml -n openshift-image-registry

 

 

# 이미지 레지스트리 설정 변경:
oc edit configs.imageregistry/cluster

# 명령을 사용하여 아래 내용을 수정합니다.
- managementState: Managed
- replicas: 2
- storage:  
pvc:
claim: registry-claim ## 위에서 만든 PVC 이름 지정

oc get co로 확인

 

 


id provider 

 

admin, developer 계정 생성하기 

 

yum install -y httpd-tools  
htpasswd -c -B -b /root/ocp/htpasswd/users.htpasswd <user id> <비밀번호>
# 인증 정보를 파일에 계속 추가하거나 업데이트하려면 아래처럼 -c 옵션 빼고 작성
htpasswd -B -b /root/ocp/htpasswd/users.htpasswd <user id> <비밀번호>

 

생성 확인

 

 oc create secret generic htpass-secret --from-file=htpasswd=/root/ocp/htpasswd/users.htpasswd -n openshift-config

 

CR 생성

vi /root/ocp/hthtpasswd/htpasswd_cr.yaml

 

my_htpasswd_provider 는 조직 이름(임의)

oc apply -f /root/ocp/htpasswd/htpasswd_cr.yaml

 

oc login -u admin

 

권한이 없어서 로그인 실패 에러가 뜸.

 

클러스터 관리자 역할(cluster-admin)을 특정 사용자(admin)에게 추가하는 명령어

oc adm policy add-cluster-role-to-user cluster-admin  admin

 

인증서 없이 임시 로그인 시도 

oc login -u admin --insecure-skip-tls-verify=true

--insecure-skip-tls-verify=true: 이 옵션은 SSL/TLS 인증서의 유효성 검사를 비활성화하도록 설정합니다. 이는 개발 환경이나 테스트 시에 사용될 수 있으며, 실제 운영 환경에서는 권장되지 않습니다. SSL/TLS 인증서 검증을 건너뛰면 보안에 취약할 수 있습니다.

 

로그인 확인

 

oc whoami --show-console

oc whoami --show-console

출력 결과

https://console-openshift-console.apps.ocp4.example.com

 

해당 콘솔 접속 사이트를 bastion의 웹브라우저를 통해 접속해봅니다.

 

developer id 로 접속한 결과 


프로젝트 생성

cli로 만들기

oc new-project mysql-service --description="team7 mysql-project" --display-name="open mysql"


oc new-project apache-service \
--description="team7 apache-project" --display-name="open apache"

생성 확인 

 

 

admin 계정에 cluster-admin 권한 부여 

oc adm policy add-cluster-role-to-user cluster-admin  admin

 

developer 유저에 mysql-service 프로젝트에 admin 역할 추가하기 

oc adm policy add-role-to-user admin developer -n mysql-service

 

아래 화면처럼 developer 의 mysql-service 프로젝트에 대한 admin 이 추가되어 있음 

 

https://access.redhat.com/documentation/ko-kr/openshift_container_platform/4.12/html/authentication_and_authorization/viewing-cluster-roles_using-rbac

 

8.4. 클러스터 역할 및 바인딩 보기 OpenShift Container Platform 4.12 | Red Hat Customer Portal

Access Red Hat’s knowledge, guidance, and support through your subscription.

access.redhat.com

 


mysql-service project 리소스 할당

 

oc project mysql-service

vi resource.yaml

oc apply -f resource.yaml
apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources
spec:
  hard:
    pods: "10"
    limits.cpu: "7"
    limits.memory: 20Gi

 

확인

oc get resourcequota

 

gui 확인 

 


mysql 어플리케이션 생성하기

https://access.redhat.com/documentation/ko-kr/openshift_container_platform/4.12/html/building_applications/creating-applications-using-cli

 

3.3. CLI를 사용하여 애플리케이션 생성 OpenShift Container Platform 4.12 | Red Hat Customer Portal

Access Red Hat’s knowledge, guidance, and support through your subscription.

access.redhat.com

configmap 생성

 

vi config_mysql.yaml
apiVersion: v1
kind: ConfigMap
metadata:
  name: mysql-info 
data:
  MYSQL_DATABASE: reca3
oc apply -f configmap_mysql.yaml

확인

secret 생성

 

그전에 환경변수 값 암호화 

echo -n <암호화하고자 하는 부분> | base64

 

vi secret_mysql.yaml

 

 

아래의 각 항목이 가리키는 환경변수 (필수 환경변수 지정)

user: MYSQL_USER

pass: MYSQL_PASSWORD

rootpass: MYSQL_ROOTPASSWORD

apiVersion: v1
kind: Secret
metadata:
  name: my-user-info
type: Opaque 
data: 
  user: bXlz~~c2Vy 
  pass: cmVk~~F0
  rootpass: cmV~~~F0
oc apply -f secret_mysql.yaml

pod 생성

vi mysql.yaml
apiVersion: v1
kind: Pod
metadata:
  name: mysql
spec:
  containers:
  - name: mysql
    image: registry.redhat.io/rhel8/mysql-80
    resources:
      requests:
        memory: "500Mi"
        cpu: "500m"
      limits:
        memory: "1Gi"
        cpu: "1"
    envFrom: 
      - configMapRef:
          name: mysql-info
    env:
    - name: MYSQL_USER
      valueFrom:
        secretKeyRef:
          name: my-user-info
          key: user
    - name: MYSQL_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-user-info
          key: pass
    - name: MYSQL_ROOT_PASSWORD
      valueFrom:
        secretKeyRef:
          name: my-user-info
          key: rootpass

 

일단 kubectl 로 pod 만 생성해봅니다. 

kubectl apply -f mysql.yaml

 

반응형

'클라우드 기초 > VMware' 카테고리의 다른 글

[Openshift] Mysql 어플리케이션 및 Mysql pvc 생성  (0) 2023.08.24
[Openshift] master, worker 노드 생성  (1) 2023.08.22
[Openshift] repo,httpd,ntp,dns 설정  (0) 2023.08.22
[VMware] 6일차  (0) 2023.08.17
[VMware] 5일차  (0) 2023.08.11

댓글