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

[Openshift] master, worker 노드 생성

by 라라쇼퍼 2023. 8. 22.
반응형

0. selinux on 상태에서 설정

setsebool -P haproxy_connect_any=1

 

1. haproxy 다운로드

yum install -y haproxy

 

 

2. haproxy 설정 파일 변경

 

[root@bastion ~]# vi /etc/haproxy/haproxy.cfg
#---------------------------------------------------------------------
# openshift loadbalancing
#--------------------------------------------------------------------
global
  log         127.0.0.1 local2
  pidfile     /var/run/haproxy.pid
  maxconn     4000
  daemon

defaults
  mode                    http
  log                     global
  option                  dontlognull
  option http-server-close
  option                  redispatch
  retries                 3
  timeout http-request    10s
  timeout queue           1m
  timeout connect         10s
  timeout client          1m
  timeout server          1m
  timeout http-keep-alive 10s
  timeout check           10s
  maxconn                 3000

# K8s API Server
listen api-server-6443
    bind *:6443
    mode tcp
    server bootstrap bootstrap.ocp4.example.com:6443 check  
    server master0 master0.ocp4.example.com:6443 check inter 1s
    server master1 master1.ocp4.example.com:6443 check inter 1s
    server master2 master2.ocp4.example.com:6443 check inter 1s

# RHOCP MC Server
listen machine-config-server-22623
    bind *:22623
    mode tcp
    server bootstrap bootstrap.ocp4.example.com:22623 check  
    server master0 master0.ocp4.example.com:22623 check inter 1s
    server master1 master1.ocp4.example.com:22623 check inter 1s
    server master2 master2.ocp4.example.com:22623 check inter 1s

# RHOCP Ingress Router for 443 port
listen ingress-router-443
    bind *:443
    mode tcp
    balance source
    server worker0 worker0.ocp4.example.com:443 check inter 1s
    server worker1 worker1.ocp4.example.com:443 check inter 1s

# RHOCP Ingress Router for 80 port
listen ingress-router-80
    bind *:80
    mode tcp
    balance source
    server worker0 worker0.ocp4.example.com:80 check inter 1s
    server worker1 worker1.ocp4.example.com:80 check inter 1s

 

3. 포트 오픈 

firewall-cmd --add-port=< >/<tcp or udp> --permanent

 

4. ignition file 생성

 

사전 작업 : ssh 키 생성, pull secret 키 받기 

 

vi install-config.yaml 

#아래 내용처럼 작성함
apiVersion: v1
baseDomain: example.com
compute:
- hyperthreading: Enabled
  name: worker
  replicas: 2     
controlPlane:
  hyperthreading: Enabled
  name: master
  replicas: 3
metadata:
  name: ocp4
networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14
    hostPrefix: 23
  networkType: OVNKubernetes
  serviceNetwork:
  - 172.30.0.0/16
platform:
  none: {}
fips: false
pullSecret: '{"auths":{"clounaver.com"}~~~~ver.com"}}}  # 자신의 pull secret key 넣기
'
sshKey: 'ssh-rsa ~~~ ==' # 자신의 ssh 공개키 입력 
imageContentSources:
- mirrors:
  - harbor.example.com:443/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - harbor.example.com:443/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev

 

 

7. bootstrap - network 세팅 

10.10.10.9/24

10.10.10.1

10.10.10.100

 

8.  coreos 설치

coreos-installer install /dev/sda --insecure-ignition -I http://10.10.10.100:8080/ign/bootstrap.ign -n --copy-network

 

--copy-network 안써주면 ip 설정 초기화됨 

 

설치 끝나면 

reboot

 

설치 확인 

openshift-install --dir=/root/ocp/config wait-for bootstrap-complete --log-level=info

9. bootstrap ssh 접속 확인

 

ssh 접속 오류날 경우

 

cd ~/.ssh/
cat known_hosts 
vim known_hosts 

10.10.10.9 의 키값을 다 삭제하고 

ssh 재접속 시도 

 

10. master 설치 

master 가상머신 on 

network 설정

기존에 있던 ip 는 삭제하고 ens192 에 10.10.10.10/24 만 남도록 설정 

 

bootstrap 설치와 동일하게 진행해줍니다. 

coreos-installer install /dev/sda --insecure-ignition -I http://10.10.10.100:8080/ign/master.ign -n --copy-network

 

 

설치 후에 워커 마스터 노드 간 또는 워커간, 마스터간 ping test, nslookup 다 확인해야함 

 

10. worker 설치

coreos-installer install /dev/sda --insecure-ignition -I http://10.10.10.100:8080/ign/worker.ign -n --copy-network

11. master, worker csr 

 

oc 명령어 사용하기 위한 작업 

vi /root/.bash_profile

# 편집기 내용에 아래 한줄 추가 
export KUBECONFIG=/root/ocp/config/auth/kubeconfig 삽입

source /root/.bash_profile

bastion 

 

node 확인 

oc get node

csr 확인

클러스터에 시스템을 추가하면 추가한 시스템별로 보류 중인 인증서 서명 요청(CSR)이 두 개씩 생성 됩니다. 이러한 CSR이 승인되었는지 확인해야 하며, 필요한 경우 이를 직접 승인해야 합니다.

oc get csr

 

아래처럼 pending 된 것들이 있다면 수동으로 승인을 해줘야합니다. 

oc adm certificate approve <csr_name>

 

최종 확인 결과

oc get clusteroperators

12.bootstrap 삭제

삭제해도되는지 확인 

openshift-install --dir=/root/ocp/config wait-for bootstrap-complete --log-level=info

/etc/haproxy/haproxy.cfg
# RHOCP MC Server
listen machine-config-server-22623
    bind *:22623
    mode tcp
#    server bootstrap bootstrap.ocp4.example.com:22623 check  
    server master0 master0.ocp4.example.com:22623 check inter 1s
    server master1 master1.ocp4.example.com:22623 check inter 1s
    server master2 master2.ocp4.example.com:22623 check inter 1s

# RHOCP Ingress Router for 443 port
listen ingress-router-443
    bind *:443
    mode tcp
    balance source
    server worker0 worker0.ocp4.example.com:443 check inter 1s
    server worker1 worker1.ocp4.example.com:443 check inter 1s

# RHOCP Ingress Router for 80 port
listen ingress-router-80
    bind *:80
    mode tcp
    balance source
    server worker0 worker0.ocp4.example.com:80 check inter 1s
    server worker1 worker1.ocp4.example.com:80 check inter 1s

bootstrap 로드 밸런싱 부분 주석 처리

그리고 

bootstrap vm 을 삭제해줌 

반응형

댓글