OpenShift는 컨테이너화된 애플리케이션을 관리하고 배포하기 위한 Red Hat의 Kubernetes 기반 플랫폼입니다. Kubernetes를 기반으로 하여 개발자와 운영팀이 애플리케이션을 더 쉽게 개발, 배포, 및 관리할 수 있도록 도와줍니다.

OpenShift 설치 구축 방법

노드 구성

  • Master Node: master1.lab.test.com
  • Node1: node1.lab.test.com
  • Node2: node2.lab.test.com
  • 각 노드의 디스크 크기: 200GB

OpenShift 서버 기본 구성요소 설치

  • 서버의 호스트 이름을 변경하고, 모든 노드를 최신 상태로 업데이트합니다.
  • SSH 키를 생성하고 복사하여 노드 간의 통신을 설정합니다.

서버 업데이트 (모든 노드)

# yum repolist
# yum update

Hostname 변경 (모든 노드)

# vi /etc/hosts
192.168.10.226 master1.test.com master1
192.168.10.227 node1.test.com node1
192.168.10.228 node2.test.com node2

# hostnamectl set-hostname master1.test.com  # 각 노드에 맞게 변경
# hostname -f
# init 6

SSH Key 생성 및 복사 (마스터 노드)

# ssh 192.168.10.227
# ssh 192.168.10.228
# ssh-keygen -f /root/.ssh/id_rsa -N ''
# ssh-copy-id root@master1
# ssh-copy-id root@node1
# ssh-copy-id root@node2
# systemctl status NetworkManager
# ssh node1 systemctl status NetworkManager
# ssh node2 systemctl status NetworkManager

OpenShift 사전 요구사항 설치 및 설정 (마스터 노드)

  • 필요한 패키지와 도구를 설치하고 설정합니다.
  • Docker를 설치하고 가상 풀 스토리지를 구성합니다.

사전 요구사항 패키지 설치

# yum install wget git net-tools bind-utils yum-utils iptables-services bridge-utils bash-completion kexec-tools sos psacct
# yum -y update
# reboot

RPM 기반 설치

yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# sed -i -e "s/^enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo
# yum -y --enablerepo=epel install ansible pyOpenSSL

Github로부터 OpenShift Ansible 저장소 복제

# cd
# git clone https://github.com/openshift/openshift-ansible
# cd openshift-ansible
# git checkout release-3.11

Docker 설치 및 확인

# yum install docker-1.13.1 -y
# rpm -V docker-1.13.1
# docker version

가상 풀 스토리지 구성

# cat << EOF > /etc/sysconfig/docker-storage-setup  #docker-pool 볼륨 설정
> DEVS=/dev/vdc  # /DEVS로 사용하고자 하는 블록 장치 경
> VG=docker-vg   # VG 볼륨 그룹
> EOF

# Docker-storage-setup  #docker-pool 볼륨 생성
# cat /etc/sysconfig/docker-storage # 스토리지 구성
DOCKER_STORAGE_OPTIONS="--storage-driver devicemapper --storage-opt dm.fs=xfs --storage- opt dm.thinpooldev=/dev/mapper/docker--vg-docker--pool --storage-opt 
dm.use_deferred_removal=true --storage-opt dm.use_deferred_deletion=true "
# lvs        #docker-vg 생성 확인
# systemctl enable docker
# systemctl start docker
# systemctl is-active docker

GlusterFS 설치

# yum -y install glusterfs-fuse
# yum update -y glusterfs-fuse

로컬 볼륨 사용 차단

로컬 볼륨 사용을 차단하여 저장 공간을 더욱 유연하게 관리합니다.

# yum -y install docker-novolume-plugin
# systemctl enable docker-novolume-plugin
# systemctl start docker-novolume-plugin
# vi /etc/sysconfig/docker
--authorization-plugin=docker-novolume-plugin  # option 목록 아래 문구 추가
# systemctl restart docker

이미지 서명 지원 사용

신뢰할 수 있는 이미지 출처에서만 이미지를 사용할 수 있도록 구성합니다.

# yum install atomic
# atomic trust show
# atomic trust add --type insecureAcceptAnything 10.0.0.1:5000
# atomic trust add --sigstoretype atomic --pubkeys pub@test.com 10.0.0.1:5000/production
# atomic trust add --sigstoretype atomic --pubkeys admin@test.co.kr 10.0.0.1:5000/production
# atomic trust add --sigstoretype atomic --pubkeys /etc/pki/test.com.pub 10.0.0.1:5000/production
# atomic trust add --sigstoretype web --sigstore https://access.redhat.com/webassets/docker/content/sigstore --pubkeys /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release registry.redhat.io

# atomic trust show

OpenShift 설치 (마스터 노드)

OpenShift 클러스터를 배포하기 위한 Ansible 인벤토리 파일의 사용자 정의 설정입니다. 이 설정은 각 노드의 역할 및 배포 구성을 정의합니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

인벤토리 파일 설정:

# vi /etc/ansible/hosts

[OSEv3:children]
masters
nodes
etcd

[OSEv3:vars]
ansible_ssh_user=root
deployment_type=origin
openshift_disable_check=memory_availability,docker_storage,disk_availability,package_version,docker_image_availability
openshift_deployment_type=origin
openshift_release="3.11"

[masters]
master1.test.com

[etcd]
master1.test.com

[nodes]
master1.test.com openshift_node_group_name='node-config-master'
node1.test.com openshift_node_group_name='node-config-compute'
node2.test.com openshift_node_group_name='node-config-compute'

Ansible 플레이북 실행

# cd /openshift-ansible/
# ansible-playbook playbooks/prerequisites.yml
# ansible-playbook playbooks/deploy_cluster.yml

위 설정은 다음을 수행합니다:

  • [OSEv3:children] 섹션은 클러스터의 다양한 역할을 그룹화합니다.
  • [OSEv3:vars] 섹션은 Ansible 플레이북에서 사용되는 변수를 정의합니다.
  • [masters], [etcd], [nodes] 섹션에서 각각 마스터, etcd, 노드의 호스트를 정의합니다.
  • openshift_node_group_name은 노드 그룹의 역할을 지정합니다. 여기서는 마스터와 컴퓨트 노드로 구성합니다.

ansible-playbook 명령을 사용하여 설정된 인벤토리 파일을 기반으로 클러스터를 배포합니다.

Etcd 설치

분산 키-값 저장소 서비스인 Etcd를 설치하여 클러스터의 상태 및 구성 정보를 저장합니다.

# yum -y install etcd
# init 0

Node 확인

클러스터의 노드가 정상적으로 등록되었는지 확인합니다.

# oc get nodes

OpenShift 설치 과정을 완료할 수 있습니다.

OpenShift 접속 및 운영

컨테이너 생성 및 웹 콘솔 접속 : https://master1.test.com:8443/console/

Application Console 클릭

image 3

Create Project 버튼 클릭 후 내용 입력하여 프로젝트 생성

image 4

생성된 프로젝트에 접속

image 5

Add to Project 클릭 후 Browse Catalog 클릭

image 6

생성하려는 서비스 선택

image 7
이 이미지는 대체 속성이 비어있습니다. 그 파일 이름은 image-8.png입니다
image 8

필요한 정보 입력 후 Create 버튼 클릭 후 서비스 동작 확인

image 9

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

아마존 해외 구매: 서버, 네트워크, 노트북 구매

Amazon Best Sellers Servers

Amazon Best Sellers Networking

Amazon Best Sellers Laptops

위로 스크롤