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 이 추가되어 있음
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 어플리케이션 생성하기
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 |
댓글