VirtualBox 설치
CentOS 이미지 파일 설치
만들기 버튼으로 생성
일반에서 다운받은 이미지 설정하기
네트워크 어댑터 1 -> NAT
어댑터 2 -> 호스트 전용 어댑터 설정
마우스 잡기 설정
yum update
yum install net-tools
- ifconfig
yum install vim -y
set nu -> 숫자 보기
명령어 숫자 입력 해당 라인으로 이동
문서의 끝 G
문서의 처음 gg
yy 한줄 복사 p
네트워크가 잘 돌아가는지 확인하기 위해서 구글로 ping을 보냄.
ping -c 2 8.8.8.8
network-scripts 폴더 안에 네트워크 설정 파일들이 있음.
cd /etc/sysconfig/network-scripts
ifcfg-enp0s3 폴더를 vi로 열기 (centOS 7에서는 vim 아니고 vi)
ls
vi ifcfg-enp0s3
BOOTPROTO="dhcp" // 동적 아이피 라는 의미
## 수정할 부분 ##
ONBOOT="yes"
systemctl -> docker service 할 때 service 를 centOS에서 이렇게 표현함
systemctl restart network
## apt 대신에 yum 이라는 명령어를 통해서 install함
yum update
## - ifconfig 명령어를 사용하기 위해 net-tools를 설치함
yum install net-tools
## vim 설치
yum install vim -y
VirtualBox에서 해당 컴퓨터 ip확인 / 명령어 아님.
192.168.56.1/24
이번에는 ifctg-enp0s8 설정
## vim
vim ifcfg-enp0s8
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.56.10
GATEWAY=192.168.56.1
systemctl restart network
윈도우 터미널에서 ping 보내보기
ping 192.168.56.10
PuTTY로 root 권한으로 접속 + 비밀번호 설정 (복붙이 잘 안되고 글씨가 작아서 putty 터미널로 옮김...)
login as: root
root@192.168.56.10's password:
Last login: Fri Oct 20 08:49:31 2023
[root@localhost ~]# ls -al
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:kISHrLz1jimvv4JyoWHNnJ268XfCrWlF41RNa5Gt09I root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| . o. ooo |
| +... . oo. |
| . . .o . o+ |
| o . . + .+ E |
| +oo.. S . o |
|..o= o. o |
|.+ o.+. o |
|+ +.= .=.o |
|...B=ooo+ |
+----[SHA256]-----+
[root@localhost ~]# cd ~
## Key 생성되었는지 확인 ##
[root@localhost ~]# cd .ssh
[root@localhost .ssh]# ll
합계 8
-rw-------. 1 root root 1679 10월 20 10:28 id_rsa
-rw-r--r--. 1 root root 408 10월 20 10:28 id_rsa.pub
## User 생성
[root@localhost .ssh]# sudo adduser k8s
[root@localhost .ssh]# sudo passwd k8s
k8s 사용자의 비밀 번호 변경 중
새 암호:
잘못된 암호: 암호가 앞뒤 어느쪽에서 읽어도 같은 문맥임
새 암호 재입력:
죄송합니다. 암호가 일치하지 않습니다.
새 암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새 암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
## sudo 권한을 실행할 수 없어서 따로 설정을 해줘야 함.
[root@localhost .ssh]# su k8s
[k8s@localhost .ssh]$ ls
ls: cannot open directory .: 허가 거부
[k8s@localhost .ssh]$ cd /home/
[k8s@localhost home]$ ls
k8s
## 권한이 없어서 일어나는 일
[k8s@localhost home]$ sudo yum install openjdk-11-jdk
로컬 시스템 관리자에게 일반적인 지침을 받았으리라 믿습니다.
보통 세가지로 요약합니다:
#1) 타인의 사생활을 존중하십시오.
#2) 입력하기 전에 한 번 더 생각하십시오.
#3) 막강한 힘에는 상당한 책임이 뒤따릅니다.
[sudo] k8s의 암호:
k8s은(는) sudoers 설정 파일에 없습니다. 이 시도를 보고합니다.
[k8s@localhost home]$ exit
exit
You have mail in /var/spool/mail/root
[root@localhost .ssh]# cd ~
[root@localhost ~]# cd /etc
[root@localhost etc]# ls -al | grep sudoers
-r--r-----. 1 root root 4328 1월 8 2022 sudoers
drwxr-x---. 2 root root 6 1월 26 2023 sudoers.d
[root@localhost etc]# vim ./sudoers
[root@localhost etc]# vim ./sudoers
[root@localhost etc]# vim ./sudoers
[root@localhost etc]# vim ./sudoers
[root@localhost etc]# vi sudo ./sudo
sudo-ldap.conf sudo.conf sudoers sudoers.d/
[root@localhost etc]# visudo
[root@localhost etc]# su k8s
새로 만들어준 계정에 권한을 줬으니 이제 다시 키를 생성한다.
키 보내주기
[k8s@localhost .ssh]$ cat id_rsa.pub >> authorized_keys
키를 받은 폴더가 생성 됨.
AWS에서 받은
[k8s@localhost .ssh]$ ^C
[k8s@localhost .ssh]$ chmod 600 ./authorized_keys
[k8s@localhost .ssh]$ ll
합계 12
-rw-------. 1 k8s k8s 407 10월 20 10:50 authorized_keys
-rw-------. 1 k8s k8s 1679 10월 20 10:48 id_rsa
-rw-r--r--. 1 k8s k8s 407 10월 20 10:48 id_rsa.pub
[k8s@localhost .ssh]$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:VmkiHEI/iUzhygIvr/QXgd588UYsQUbW0gjN2Gix+Mk.
ECDSA key fingerprint is MD5:34:08:79:11:42:bb:39:72:66:c6:5c:f9:d5:75:8e:a3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Last login: Fri Oct 20 10:43:47 2023
[k8s@localhost ~]$ ssh 127.0.0.1
The authenticity of host '127.0.0.1 (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:VmkiHEI/iUzhygIvr/QXgd588UYsQUbW0gjN2Gix+Mk.
ECDSA key fingerprint is MD5:34:08:79:11:42:bb:39:72:66:c6:5c:f9:d5:75:8e:a3.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '127.0.0.1' (ECDSA) to the list of known hosts.
Last login: Fri Oct 20 10:53:15 2023 from localhost
[k8s@localhost ~]$ w // 세션 보는 명령어
10:53:42 up 2:04, 4 users, load average: 0.05, 0.06, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 08:49 1:02m 0.35s 0.35s -bash
root pts/0 gateway 09:53 6.00s 0.15s 0.03s ssh localhost
k8s pts/1 localhost 10:53 6.00s 0.04s 0.02s ssh 127.0.0.1
k8s pts/2 localhost 10:53 4.00s 0.03s 0.02s w
[k8s@localhost ~]$ exit
logout
Connection to 127.0.0.1 closed.
계정과 키가 동일해서 서로 암호를 안물어보고 로그인을 할 수 있음.
vim 명령어
- :set nu -> 숫자 보이도록
- 명령어 숫자 입력 해당 라인이동
- 문서의 끝으로 이동 대문자 G
- 문서의 처음올 이동 소문자 gg
- 밖으로 나가기 (q!)
visudo
su k8s
ssh-keygen -t rsa
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 ./authorized_keys
ssh 127.0.0.1
Docker 설치
sudo yum install docker -y // docker 설치
sudo systemctl enable --now docker // 시스템 설정 ? 실행 하면서 하겠다
docker ps를 하면 권한이 없어서 실행되지 않음. 일단 alias를 sudo docker를 해주도록 함.
sudo docker ps
[k8s@localhost ~]$ vim ~/.bashrc
:wq 로 저장하고 빠져나오기
## vim으로 수정해준 경우 source~ 를 입력해야 적용이 되는 것임
[k8s@localhost ~]$ vim ~/.bashrc
[k8s@localhost ~]$ source ~/.bashrc
swap 끄는 방법
[k8s@localhost ~]$ sudo swapoff -a
## Swap off 하기 swap 표기
sudo swapoff -a
sudo sed -i.bak -r 's/(.+ swap .+)/#\1/' /etc/fstab
쿠버네티스 repository 등록
EOF 여기에 뒷 내용을 다 담을 수 있음 (일종의 문법 같은....)
[k8s@localhost ~]$ sudo sed -i.bak -r 's/(.+ swap .+)/#\1/' /etc/fstab
[k8s@localhost ~]$ sudo su
[root@localhost k8s]# gg_pkg="packages.cloud.google.com/yum/doc" # Due to shorten addr for key
[root@localhost k8s]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
> [kubernetes]
> name=Kubernetes
> baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
> enabled=1
> gpgcheck=0
> repo_gpgcheck=0
> gpgkey=https://${gg_pkg}/yum-key.gpg https://${gg_pkg}/rpm-package-key.gpg
> EOF
[root@localhost k8s]# vim /etc/yum.repos.d/ku^C
[root@localhost k8s]# ^C
[root@localhost k8s]# vim /etc/yum.repos.d/kubernetes.repo
[root@localhost k8s]# setenfore 0
bash: setenfore: command not found
[root@localhost k8s]# setenforce 0
## 쿠버네티스 보안 설정
[root@localhost k8s]# sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
방화벽 설정
## 방화벽 확인 / 켜 있는 상태임
[root@localhost k8s]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 금 2023-10-20 09:36:46 KST; 2h 1min ago
Docs: man:firewalld(1)
Main PID: 23815 (firewalld)
CGroup: /system.slice/firewalld.service
└─23815 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D OUTPUT -m addrtype --...rectory
Try `iptables -h' or 'iptables --help' for more information....
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D PREROUTING' failed: i...hain?).
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -D OUTPUT' failed: iptab...hain?).
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -F DOCKER' failed: iptab...t name.
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t nat -X DOCKER' failed: iptab...t name.
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -F DOCKER' failed: ip...t name.
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER' failed: ip...t name.
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -F DOCKER-ISOLATION' ...t name.
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -t filter -X DOCKER-ISOLATION' ...t name.
10월 20 11:14:11 localhost.localdomain firewalld[23815]: WARNING: COMMAND_FAILED: '/usr/sbin/iptables -w10 -D FORWARD -i docker0 -o docker...hain?).
Hint: Some lines were ellipsized, use -l to show in full.
## 방화벽 지움 -> 재부팅 해도 방화벽 안올라옴
[root@localhost k8s]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
네트워크 관련 설정
iptables란?
설정 해줌.
## 네트워크 설정 부분
[root@localhost k8s]# cat <<EOF > /etc/sysctl.d/k8s.conf
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
[root@localhost k8s]# modprobe br_netfilter
[root@localhost k8s]# cat <<EOF > /etc/sysctl.d/k8s.conf
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> EOF
[root@localhost k8s]# modprobe br_netfilter
DNS 설정
vim /etc/hosts
192.168.56.10 m-k8s
192.168.56.11 w1-k8s
192.168.56.12 w2-k8s
192.168.56.13 w3-k8s
## k8s에핑 보내보기
[root@localhost k8s]# ping m-k8s
PING m-k8s (192.168.56.10) 56(84) bytes of data.
64 bytes from m-k8s (192.168.56.10): icmp_seq=1 ttl=64 time=0.054 ms
64 bytes from m-k8s (192.168.56.10): icmp_seq=2 ttl=64 time=0.116 ms
64 bytes from m-k8s (192.168.56.10): icmp_seq=3 ttl=64 time=0.056 ms
^C
--- m-k8s ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.054/0.075/0.116/0.029 ms
k8s 설치
# k8s 설치
yum install kubectl-1.18.4 -y
yum install kubelet-1.18.4 -y
yum install kubeadm-1.18.4 -y
systemctl enable --now kubelet
## 서버 종료 하지만 MAC은 디스크 손상의 우려가 있어서 함부러 끄면 안됨.
shutdown -h now
하고 설정된 상태를 이미지로 굽기
하면 내 문서에 이미지 파일로 저장됨. -끝-
이미지 파일을 3개 복사
* 각 컴퓨터에 접속한 뒤에 ip, hostname 변경
### 각 가상 컴퓨터에 접속한 뒤에 ifcfg-enp0s8 파일을 vim 모드로 ip주소를 각각 수정
m -> 10
w1 -> 11
w2 -> 12
------
k8s-w1
vim /etc/sysconfig/network-script/ifcfg-enp0s8
192.168.56.11
m-k8s
w1-k8s
w2-k8s
각각 이름을 변경해줌,
이름 변경해주는 명령어
# hostname
hostnamectl set-hostname [ ]
### 설정 후 restart
systemctl restart network
### 이름 변경이 안된다면 exit
잘 실행되는지 확인
kubeadm
### 클러스터를 초기화하고 설정하는 명령어
### ip는 172.16.0.0/16 내에서 사용하고 192.168.56.10가 마스터 노드라는 의미
sudo kubeadm init --token 123456.1234567890123456 --token-ttl 0 \
--pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=192.168.56.10
설정 파일 복사 및 소유권 부여
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f \
https://raw.githubusercontent.com/sysnet4admin/IaC/master/manifests/172.16_net_calico.yaml
[k8s@m-k8s ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
m-k8s Ready master 20m v1.18.4
[k8s@m-k8s ~]$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-99c9b6f64-h6tpg 1/1 Running 0 30s
calico-node-5z46t 1/1 Running 0 30s
coredns-66bff467f8-7hj4f 1/1 Running 0 19m
coredns-66bff467f8-v27bx 1/1 Running 0 19m
etcd-m-k8s 1/1 Running 0 20m
kube-apiserver-m-k8s 1/1 Running 0 20m
kube-controller-manager-m-k8s 1/1 Running 0 20m
kube-proxy-mnrms 1/1 Running 0 19m
kube-scheduler-m-k8s 1/1 Running 0 20m
'🚀 부트캠프 - PLAYDATA > 📒 수업 내용 정리' 카테고리의 다른 글
[Docker] 10/5 이미지파일 생성, 인증키 생성, 도커 볼륨 생성 (0) | 2023.10.09 |
---|---|
[Springboot] RestTemplate / 서버간 통신 (0) | 2023.09.12 |
[Springboot]9/6 연관 관계 매핑 (0) | 2023.09.06 |
[SpringBoot] Entity 와 Repository 설계 / Repository 메서드 설계 규칙 (0) | 2023.09.01 |
[Springboot] IntelliJ 프로젝트 생성 / pom.xml 문서 구성 (0) | 2023.08.31 |