반응형

준비물-> centos 7 // vertual box //

# 버츄얼박스 네트워크 설정 ( 호스트 네트워크 관리자)

## 파일-호스트네트워크 관리자로 들어간다
##virtualBox Host-Only Ethernet Adapter 클릭->아래 어댑터 탭에서 설정시작

$ip route    # -> 게이트웨이 확인(default에 나오는 값)
1.수동으로 어댑터 설정
2. ipv4 주소= 192.168.56.1
3. ipv4 서브넷 마스크 = 255.255.255.0
4. dhcp 체크해제

적용

# 버츄얼박스 os(centos 7 이미지생성/ 최소 2개 생성/용량30gb/cpu코어 2코어 이상 만들것)
## 이미지우클릭 - 설정 - 네트워크
 1. 1번 어댑터는 NAT로 설정
 2. 2번 어댑터는 호스트 전용 어댑터를 클릭
 
 3. 1번 어댑터 -고급-포트포워딩//
 포트 포워딩 규칙 추가 한다. (추후 ssh, web 외부 접속을 위해 22, 80포트)
 
 ## master로 쓸 vm image에서 수정
	- 호스트ip 192.168.56.1
	- 호스트 port 22
	- 게스트ip 192.168.56.150
	- 게스트 port 22

## node로 쓸 이미지도 
	- 호스트 ip 위와 동일
    - port 23
    - 게스트 ip: 192.168.56.151
    - 게스트port 23

 혹시 호스트 ip 찾는법 모르시는 분을 위해서 아래의 url을 참고
 
 # 설정후 os설치

https://respecttt.tistory.com/51

 

버츄얼박스 host ipv4 주소 알아내는 법 / virtual box ip 보는법

광고한번씩 클릭 해 주시면 있던 오류도 사라질 겁니다.! 큰 도움이 됩니다. 한번씩만 클릭 부탁드리겠습니다.ㅠㅠㅠㅠ 버츄얼 머신을 실행시키면 버츄얼 머신과 네트워킹 하는 ip를 할당하게

respecttt.tistory.com

 

*버츄얼 박스 마스터 이미지

#centos 설치 후 

(moba XTerm으로 ssh로 접속한다.)
ex) root@192.168.56.1:22

(master이미지 설정)

* network설정
cd /etc/sysconfig/network-scripts
vi ifcfg-enp0s8 (이름이 가끔 달랐음 ex // ifcfg-enp0s3)

[master/ifcfg-enp0s8]
#2개 변경
BOOTPRTO=static
ONBOOT=yes

# 맨 아래에 2줄 추가
IPADDR=192.168.56.150
GATEWAY=192.168.56.1

-> :wq로 저장후 빠져나옴


* hostname, hosts설정

vi /etc/hostname

[hostname]
k8s-master

-> :wq로 저장후 빠져나옴

vi /etc/hosts

[hosts]
추가
192.168.56.150 k8s-master
192.168.56.151 k8s-node1

-> :wq로 빠져나옴


$systemctrl restart network
$systemctrl reboot

* 버츄얼박스 노드1 이미지 설정

위와 같으나 

2가지 다른것이 있다.

1. [ipcfg-enp0s8]
IPADDR=192.168.56.151

2. [hostname]
k8s-node1

으로 설정 후 똑같이 다 해준다.
본격적인 kubenetis설치

[마스터, 노드1 이미지 둘다 설치해야함]
1. 도커설치

$ curl -s https://get.docker.com | sudo sh
$ systemctl enable --now docker

2. selinux, swap, 방화벽 비활성화

$ setenforce 0
$ sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
$ swapoff -a
$ sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
$ systemctl disable firewalld
$ systemctl stop firewalld

3.iptables 설정
##cat부터 EOF까지 복사해서 붙혀넣기

$ cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

$ cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

$ sudo sysctl --system

kube시리즈 3개 설치

 

[마스터, 노드1 이미지 둘다 설치해야함]

1. repo등록.

$ cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF

2. 설치 

$ yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
$ systemctl enable --now kubelet


daemon.json 편집

$ cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2",
  "storage-opts": [
    "overlay2.override_kernel_check=true"
  ]
}
EOF

 

설치 완료 후 [master]에서만 입력

$ kubeadm init --apiserver-advertise-address 192.168.56.150 --pod-network-cidr=172.31.0.0/16

##에러 발생시 

$ rm /etc/containerd/config.toml
$ systemctl restart containerd
입력후 다시 위의 명령어로 init

init이 완료된 커멘드창을 자세히 보면

mkdir -p $HOME/.kube로 시작되는 메세지 부터 3개를 각각 입력해준다.

그리고 export KUBECONFIG으로 시작하는 명령어도 입력하여 

총 4개의 명령어를 추가로 입력해준다.

 

그리고 조금 아래에 보면 kubeadm join 으로 시작하는 메세지도 복사한다.// 토큰값까지

ex)

kubeadm join 192.168.56.150:6443 --token au8frb.4deses4x2qq6debo         --discovery-token-ca-cert-hash sha256:303378599aca0206f994607e584a9a2dc2ab74131020e4b4fd1956f2dad6ba89

 

그리고 node1 이미지에서

복사한 kubeadm join ~ 을 붙혀넣기 하여 master node에 join 시킨다.

 

[master]

$ kubectl get nodes를 쳐서 노드가 클러스터에 참여하는지 확인한다.

[weave]
$ kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

다른 쿠버네티스 설치를 보면 weave설치할때 다운이 안받아져서 계속 에러가 나는데 git으로 주소를 바꾼듯 하다.

 

네임스페이스 확인

 $kubectl get pods --all-namespaces

 

설치시 내가 많이 햇갈렸던 부분은 네트워킹이다.

네트워킹 관련하여 잘 몰라서 여러번 삽질을 한것.

그리고  weav추가가 잘 안되서 찾아보니 git으로 주소가 바꼈었던것.

 

1. 버츄얼박스에서 각 이미지들간의 통신을 어떻게 설정할 것인가?

2. os안에서 ip설정 및 hosts 설정등

설치 끝...?

 

아. 추가로 설치 실패시 

$ kubeadm reset
$ systemctl restart kubelet
$ systemctl reboot
반응형

+ Recent posts