systemctl stop firewalld
systemctl disable firewalld
swapoff -a
이후 SSH Key 생성과 복사를 하였다.
# ssh key 생성 (Master 노드에서만 진행)
ssh-keygen -t rsa
# Key 복사
cat ~/.ssh/id_rsa.pub
# 위 결과를 복사한 후 아래 "" 안에 삽입 (이 명령어는 master / worker 노드 모두 수행)
echo "" > ~/.ssh/authorized_keys
kubespray 설치
# git 설치
yum install -y git
# python 설치
yum install -y python3 python3-pip
# kubespray 설치
# kubespray 의 버전에 따라 잘 설치해야한다.
# 필자는 Rocky 8.9 버전에 python 이 호환되는 버전이라 그런지 2.22 버전으로 설치하여서 성공했다.
git clone -b v2.22.0 https://github.com/kubernetes-sigs/kubespray.git
필수 Package 들 설치
# git clone 으로 생성된 kubespray 경로에 접속하여 실행
cd kubespray; pip3 install -r requirements.txt
설치 도중에 나온 에러
버전이 없다는 에러가 나온다.
# requirements 의 버전을 낮춰주었다.
cd kubespray; rm requirements.txt
ln -s requirements-2.11.txt requirements.txt
수행해도 버전이 안맞아서 안되었다.
그럴경우 아래처럼 수정하면 된다.
#1. 파일 열기
cd kubespray; vi requirements.txt
#2. 아래와 같이 붙혀넣기
ansible==4.10.0
ansible-core==2.11.11
cryptography==3.4.8
jinja2==3.0.3
jmespath==0.10.0
MarkupSafe==2.0.1
netaddr==0.8.0
pbr==5.11.1
ruamel.yaml==0.17.21
ruamel.yaml.clib==0.2.7
필자처럼 했음에도 버전이 없을경우 있는 버전으로 맞춰주면된다.
inventory 설정 변경
# Copy ``inventory/sample`` as ``inventory/mycluster``
cd kubespray; cp -rfp inventory/sample inventory/mycluster
# inventory.ini 설정
vi inventory/mycluster/inventory.ini
# ## Configure 'ip' variable to bind kubernetes services on a
# ## different ip than the default iface
# ## We should set etcd_member_name for etcd cluster. The node that is not a etcd member do not need to set the value, or can set the empty string value.
[all]
master1 ansible_host=192.168.13.10 #ip=192.168.13.10 etcd_member_name=etcd1
worker1 ansible_host=192.168.13.11
worker2 ansible_host=192.168.13.12
worker3 ansible_host=192.168.13.13
# ## configure a bastion host if your nodes are not directly reachable
# [bastion]
# bastion ansible_host=x.x.x.x ansible_user=some_user
[kube_control_plane]
master1
[etcd]
master1
[kube_node]
worker1
worker2
worker3
[calico_rr]
[k8s_cluster:children]
kube_control_plane
kube_node
calico_rr
# API Server 통신을 위한 인증파일 복사
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# k8s node 확인
kubectl get nodes
# k8s 모든 리소스 확인
kubectl get all --all-namespaces
위에 해당하는 include를 잡아주어야해서 sys_include 의 맨 뒷부분에 11버전의 gcc의 include 경로를 잡아주었다.
#pcscfg.cfg 파일
#맨 끝 부분 /usr/lib/gcc/x86_64-redhat-linux/11/include 추가
sys_include=($ORACLE_HOME/sdk/include,/usr/include,/usr/lib/gcc/x86_64-redhat-linux/4.1.2/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include,/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include,/usr/lib64/gcc/x86_64-suse-linux/4.8/include,/usr/lib/gcc/x86_64-redhat-linux/11/include)
[abc@hostname instantclient_12_2]$ ./sqlplus
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
[abc@hostname instantclient_12_2]$ ./sqlplus
Segmentation fault (core dumped)