### 서버 전체적으로 필요한 기본 구성


### 방화벽 끄기

service firewalld stop

systemctl disable firewalld

iptables -L 


### dns 관련 utils 구성

yum install -y bind-utils


### selinux 끄기
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0



https://github.com/kelseyhightower/kubernetes-the-hard-way/blob/master/docs/03-compute-resources.md



Local PC 를 이용해서 구성진행이라, "https://dangerzo.tistory.com/entry/HARDWAY-0-Architecture?category=919304" 해당 내용에서 구성한 Hardward 구성을 참조해서 진행하면 된다. 


Master 및 Worker 의 IP 를 고정으로 가져가면 편리하지만, DHCP 로 구성이 안되는것은 아니니 걱정하지말고 구성하자

DHCP 는 테스트 Lab 일경우 추천하며, 운영상황에서는 IP 가 변경되면 변경되는 IP 에 따라서 인증서 및 Kubeconfig 파일의 변경 및 etcd 등등 여러가지에 영향을 끼치니 Static IP 를 가지고 구성하는것을 추천한다. 


VM 은 한번 구성 후 삭제만하지 않는다면 기존의 IP를 왠만하면 (95% 이상) 가지고 올라오기때문에 테스트에 전혀 문제는 없다. 


작업 후 Master01 서버 (kubectl 및 hardway 서버구성 진행할 서버) 에서 인증서를 발행하여, 각 서버에 비밀번호 없이 ssh 통신이 될수 있도록 세팅해주자.


### SSH Keygen 을 이용한 인증서 발급 및 인증서 복사 작업


ssh-keygen 을 이용해서 key 생성시 질문에 대해서는 전부 enter(빈공란)를 입력 해도 인증서 생성에는 전혀 문제가 없다. 


# ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/root/.ssh/id_rsa): 

Enter passphrase (empty for no passphrase): 

Enter same passphrase again: 

Your identification has been saved in /root/.ssh/id_rsa.

Your public key has been saved in /root/.ssh/id_rsa.pub.

The key fingerprint is:

SHA256:RUuebgSuNX4lxe+pPcVeAZd8afQwH0Q7arNMXQJ6xpk root@haproxy

The key's randomart image is:

+---[RSA 2048]----+

|        . o.o B=o|

|       . = *.= X=|

|        + O E.=o=|

|       + = =  +oo|

|      . S +  * +.|

|         o  + = +|

|             = o.|

|            . o .|

|               . |

+----[SHA256]-----+


# ll .ssh/

total 12

-rw-------  1 root root 1679 Dec  1 15:19 id_rsa

-rw-r--r--  1 root root  394 Dec  1 15:19 id_rsa.pub



### Public 인증서 작업대상 서버에 복사 (Haproxy, Master01, 02, 03, Worker01, 02, 03)

ssh 키 복사작업을할때 서버에서 scp 명령어를 이용해서 비밀번호를 한땀한땀 입력해가며 key 를 복사해두 된다. 

1. 작업대상서버에 $HOME/.ssh/ Directory 생성하기
작업대상 서버 접속 후 (master01~03, worker01~03, haproxy)
mkdir .ssh

2. 키 복사하기
scp .ssh/id_rsa.pub root@작업대상서버:~/.ssh/authorized_keys
ex) scp .ssh/id_rsa.pub root@192.168.1.55:~/.ssh/authorized_keys

위의 작업이 불편하다면 아래의 expect scripts 를 참조하여 자동화를 해도 된다. (선택사항)

### expect 설치(선택사항)
yum install -y expect

### 스크립트 구성(선택사항)

#!/bin/bash

THOST=("192.168.1.55" "192.168.1.56" "192.168.1.57" "192.168.1.58" "192.168.1.60")

for ((i=0; i<6; i++)); do

echo "Create directory ${THOST[i]} Server START"

expect <<EOF
spawn ssh root@${THOST[i]} mkdir /root/.ssh/
expect (yes/no)?
send "yes\n"
expect password:
send "비밀번호\n"
expect eof
EOF

echo "Create directory ${THOST[i]} Server END" 

sleep 2

done


for ((i=0; i<6; i++)); do

echo "Copy Public Key ${THOST[i]} Server START"

expect <<EOF
spawn scp .ssh/id_rsa.pub root@${THOST[i]}:~/.ssh/authorized_keys
expect pssword:
send "비밀번호\n"
expect eof
EOF

echo "Copy Public Key ${THOST[i]} Server END"

sleep 2

done


3. 각 서버마다 hostname 을 정확하게 지정해주고, /etc/hosts 파일에 정보를 기입하자. 


### 각 서버에서 작업

sudo hostnamectl set-hostname master01

sudo hostnamectl set-hostname master02

sudo hostnamectl set-hostname master03

sudo hostnamectl set-hostname worker01

sudo hostnamectl set-hostname worker02

sudo hostnamectl set-hostname worker03

sudo hostnamectl set-hostname haproxy


### Hosts 파일 구성


cat << EOF > /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6



192.168.1.21    master01

192.168.1.55    master02

192.168.1.56    master03

192.168.1.57    worker01

192.168.1.58    worker02

192.168.1.60    worker03

192.168.1.47    haproxy


EOF


위의 IP 는 각 서버구성시 확인 후 변경해 주도록 하자



+ Recent posts