Post

[OpenShift 오픈시프트] RHOCP 4.14.15 Installation - 6. Bootstrap 노드 구성

RHOCP 4.14.15 설치 (오픈시프트 설치) - Bootstrap 노드 구성


Test Environment


Red Hat Enterprise Linux 9.2 (Plow)


1. RHOCP VM 템플릿 생성


RHCOS(Red Hat CoreOS) 4.14.15 버전의 OVF 파일(ova)을 생성하려는 위치에서 OVF 템플릿 배포를 누른다.

image-20240717141012454


URL을 선택하고 Red Hat CoreOS 4.14.15 OVF 템플릿 다운로드 링크를 입력한다. (Public 환경)

만약 인터넷이 되지 않는 환경이거나, 네트워크 속도가 느려 진행이 안 된다면 해당 파일을 미리 다운로드 받고 로컬 파일로 업로드해서 진행하면 된다.


https://mirror.openshift.com/pub/openshift-v4/x86_64/dependencies/rhcos/4.14/latest/rhcos-4.14.15-x86_64-vmware.x86_64.ova

image-20240717140848954


[예]를 누르고 계속 진행한다.

image-20240717141044086


VM 이름과 생성 위치를 정하고 다음으로 넘어간다.

image-20240717141428653


계산 리소스 선택에서 로딩시간이 꽤 소요된다.

image-20240717141150251


image-20240717162033169


image-20240717162053056


image-20240717162102986


image-20240717162121251


image-20240717162134248


생성된 VM을 우클릭하여 설정 편집을 누른다.

image-20240717162536082


하드 디스크 유형을 씬 프로비전(동적 할당)으로 바꿔준다.

image-20240717162625393


2. Bootstrap 노드 생성


이제 생성한 템플릿을 복제하여 Bootstrap 노드를 생성한다.

image-20240717162705073


image-20240717162740345


image-20240717162759161


image-20240717162820657


image-20240717162840969


image-20240717162849091

image-20240717162900432


image-20240717162926670

bootstrap vm을 선택하고 우클릭하여 설정 편집을 누르고 VM 옵션 메뉴로 간다.

image-20240717163057020


구성 편집을 클릭g하여 매개변수 4개를 추가해준다.

image-20240717163040984


앞서 생성한 merge-b.ign_base64 내용과 생성하려는 Bootstrap IP 정보를 입력하자.

여기서 nameserver는 DNS 노드 ip로 입력하면 된다.

구성 매개 변수변수 설정값 (bootstrap 노드)
guestinfo.ignition.config.data<base64 인코딩한 bootstrap 보조 ignition 파일 (merge-b.ign_base64) 내용>
guestinfo.ignition.config.data.encodingbase64
disk.EnableUUIDTRUE
guestinfo.afterburn.initrd.network-kargsip=172.16.0.172::172.16.0.1:255.255.255.0:::none nameserver=172.16.0.171


구성한 화면은 다음과 같으며 잘 입력되었으면 확인을 누른다.

image-20240717163613765


이제 VM을 바로 실행한다.

image-20240717163732508


VM이 켜졌으면 Bastion 서버에서 Bootstrap 서버로 ssh를 통해 접속한다.

ssh core@172.16.0.172

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@bastion ~]# ssh core@172.16.0.172
The authenticity of host '172.16.0.172 (172.16.0.172)' can't be established.
ED25519 key fingerprint is SHA256:9FJ3rGa6UpXqf8vigN/ki+2poipwa30i3vp7eDRXMfQ.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '172.16.0.172' (ED25519) to the list of known hosts.
Red Hat Enterprise Linux CoreOS 414.92.202402130420-0
  Part of OpenShift 4.14, RHCOS is a Kubernetes native operating system
  managed by the Machine Config Operator (`clusteroperator/machine-config`).

WARNING: Direct SSH access to machines is not recommended; instead,
make configuration changes via `machineconfig` objects:
  https://docs.openshift.com/container-platform/4.14/architecture/architecture-rhcos.html

---
This is the bootstrap node; it will be destroyed when the master is fully up.

The primary services are release-image.service followed by bootkube.service. To watch their status, run e.g.

  journalctl -b -f -u release-image.service -u bootkube.service


접속을 하면 출력되는 맨 아래 명령어를 통해 Bootstrap 서버의 시스템 로그를 실시간으로 조회할 수 있다.

API is up이 보이면 성공적으로 실행됐다고 볼 수 있다.

journalctl -b -f -u release-image.service -u bootkube.service

1
2
3
4
5
6
7
8
9
Jul 19 01:53:52 bootstrap.openshift.ig.local cluster-bootstrap[4508]: Starting temporary bootstrap control plane...
Jul 19 01:53:52 bootstrap.openshift.ig.local bootkube.sh[4475]: Starting temporary bootstrap control plane...
Jul 19 01:53:52 bootstrap.openshift.ig.local cluster-bootstrap[4508]: Waiting up to 20m0s for the Kubernetes API
Jul 19 01:53:52 bootstrap.openshift.ig.local bootkube.sh[4475]: Waiting up to 20m0s for the Kubernetes API
Jul 19 01:53:52 bootstrap.openshift.ig.local podman[4475]: 2024-07-19 01:53:50.144653982 +0000 UTC m=+0.039775280 image pull  quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:6bafe651d11b093f69f7c5d4036dfae3f20092ce52e6deb47af5272ec8ff653d
Jul 19 01:53:53 bootstrap.openshift.ig.local cluster-bootstrap[4508]: Still waiting for the Kubernetes API: Get "https://localhost:6443/readyz": dial tcp [::1]:6443: connect: connection refused
Jul 19 01:53:53 bootstrap.openshift.ig.local bootkube.sh[4475]: Still waiting for the Kubernetes API: Get "https://localhost:6443/readyz": dial tcp [::1]:6443: connect: connection refused
Jul 19 01:54:15 bootstrap.openshift.ig.local cluster-bootstrap[4508]: API is up
Jul 19 01:54:15 bootstrap.openshift.ig.local bootkube.sh[4475]: API is up


이제 Bastion 서버에서 최종적으로 Bootstrap 서버가 완성되었는지 확인하기 위해 다음 명령어를 입력해주자.

openshift-install wait-for bootstrap-complete --dir=/var/www/html/ocp --log-level debug

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DEBUG OpenShift Installer 4.14.15
DEBUG Built from commit 6ee6900a509dfb4a3fd568f741e163655bd3f45c
INFO Waiting up to 20m0s (until 11:25AM KST) for the Kubernetes API at https://api.openshift.ig.local:6443...
DEBUG Loading Agent Config...
INFO API v1.27.10+c79e5e2 up
DEBUG Loading Install Config...
DEBUG   Loading SSH Key...
DEBUG   Loading Base Domain...
DEBUG     Loading Platform...
DEBUG   Loading Cluster Name...
DEBUG     Loading Base Domain...
DEBUG     Loading Platform...
DEBUG   Loading Networking...
DEBUG     Loading Platform...
DEBUG   Loading Pull Secret...
DEBUG   Loading Platform...
DEBUG Using Install Config loaded from state file
INFO Waiting up to 30m0s (until 11:35AM KST) for bootstrapping to complete...

INFO API v1.27.10+c79e5e2 up 문구가 출력되면 잘 된 것이니 Master 노드를 생성해도 된다.


bootstrap 노드에서 포트 리슨 중인지를 통해서도 확인할 수 있다.

netstat -ntlp | egrep "6443|22623"

1
2
3
4
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::6443                 :::*                    LISTEN      -
tcp6       0      0 :::22623                :::*                    LISTEN      -


References


https://docs.openshift.com/container-platform/4.14/installing/installing_bare_metal/installing-bare-metal-network-customizations.html

https://docs.openshift.com/container-platform/4.14/installing/installing_bare_metal/installing-bare-metal.html


This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.