가상화를 사용하는 이유:
물리적인 하드웨어(베어메탈)에서 사용하는 과정에서 하드웨어 가상화보다 리소스를 적게 차지하고 속도를 향상시킬 수 있다!
vagrant status
우분투(데비안)/센토스(레드햇) 가장 많이 쓰는 리눅스 배포판
둘 다 많은 명령어가 비슷하지만 어플리케이션/네트워크 명령어 등의 부분에서 약간 다를 수도
오늘은 CentOS 설치!
vagrant halt <삭제하고싶은 이미지 id>
vagrant destroy <노드 이름 명시>
vagrant up
은 poweroff된것도 다시 기동시킬 때 사용
vagrant ssh master
vagrant 파일이 있는 곳에서 실행
각자 접속
골뱅이는 서버 이름
잘 안바뀌면 이렇게 그냥 vagrantfile 바꿔도됨
vagrant reload
(halt하고 up 하는거)
꼬여서 걍 다 삭제하고 다시 up함
성공......
이동하기 번거로우니
xshell 을 통해 해야된다
현재 접속된 터미널 다 로그아웃하고
vagrant ssh-config node1
vagrant ssh-config node2
vagrant ssh-config master
Identityfile 경로 잘 기억해두기!
경로를 프라이빗 키 전까지 복붙해서 폴더 들어가기
xshell도 켜준다
포트번호/호스트/이름 변경
가져오기
Identityfile 경로->private_key 가져오기
이렇게 각각 만들어서 연결해주기
연결하고 루트파일 들어가서 강사님이 올려주신 루트대로 파일 내용 복붙
각각 센토스 설치 마치면 vi에 들어가서 ip주소 매핑해주기
centOS 에서는 apt-get 대신yum으로 다운받는다!
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum update && yum install docker-ce
useradd dockeradmin
실제 업무에서는 이렇게 설치하진 않고.,.설치된 리눅스 이미지를 공유한다.
작성하다가
kubeadm join 192.168.56.10:6443 --token x1qogf.3i1d8zc267sm4gq8 \
--discovery-token-ca-cert-hash sha256:1965b56832292d3de10fc95f92b8391334d9404c914d407baa2b6cec1dbe5322
이건 예시이니 화면에 나타날 커맨드로 사용할것임
이부분 복사
kubectl get pods --all-namespaces
했을때 다 running 이어야됨! 근데 아직pending이라는건...진행중이라는것이니 잠시 대기한다.
쿠버네티스는 그룹으로 묶어서 설치할 수 있는데 그 묶는 단위를pod라고 한다.
pod도 쿠버네티스의 한 종류로, 컨트롤러 등의 리소스들을 설치하기 위해 두 가지 방법이 있다.
첫 번째는 프롬프트에 명령어 입력
두 번째는 작성해야될 파일을yml 파일로 만들어서 실행하는 방법
docker run -d -p 이미지 이름
이렇게 도커를 실행할 수 있었는데 이걸 도커 컴포즈 파일로 돌리는것도 가능했다!
쿠버네티스에서도 이 두 가지를 모두 지원해준다.
오브젝트/리소스 다운 가능/ 별도의 파일 만들어서 설치도 가능
칼리코도 yaml 파일 받아서 다운 가능하다.
apply 를 통해 다운받을 수 있다
다 실행중^-^
설치완료.
이제 복사해뒀던
kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo \
--discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
포트가 사용중이라면 kubadm 리셋
systemctl restart kubelet
하고서 kubelet init 다시 만들어주거나 해당 포트 삭제하거나 해야될듯
sudo netstat -lnp | grep 10250
sudo kill Process_PID
이런 방식으로 해당 프로세스 삭제해주기
....
네트워크에 문제가 생겼다.
자꾸 한 노드에서 crashloopbackoff가 떴다
다른 노드 창에 들어가 get nodes 를 해보니
The connection to the server localhost:8080 was refused - did you specify the right host or port?
라고 뜸
리셋하고 구글링해봐도 뭐가 안나옴
그리고 내 얕은 지식으로...내용도 제대로 안읽힘.
정신이 아득해진다
ㅋㅋ
공부 더 열심히해야지...
꼭 짱이 돼서 컴퓨터 다 패버릴거야
master
1 setenforce 0
2 sestatus
3 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
4 clear
5 systemctl stop firewalld && systemctl disable firewalld
6 systemctl stop NetworkManager && systemctl disable NetworkManager
7 swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
8 xxxxxxxxxx cat <<EOF > /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1EOF
9 exit
10 ()
11 cat <<EOF > /etc/sysctl.d/k8s.conf
12 net.bridge.bridge-nf-call-ip6tables = 1
13 net.bridge.bridge-nf-call-iptables = 1
14 EOF
15 sysctl --system
16 cat <<EOF > /etc/yum.repos.d/kubernetes.repo
17 [kubernetes]
18 name=Kubernetes
19 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
20 enabled=1
21 gpgcheck=1
22 repo_gpgcheck=1
23 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
24 EOF
25 yum update
26 vi /etc/hosts
27 clear
28 yum install -y yum-utils device-mapper-persistent-data lvm2
29 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
30 yum update && yum install docker-ce
31 useradd dockeradmin
32 passwd dockeradmin
33 curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
34 chmod +x /usr/local/bin/docker-compose
35 ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
36 docker-compose -version
37 usermod -aG docker dockeradmin
38 systemctl enable --now docker && systemctl start docker
39 clear
40 curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-
41 chmod +x /usr/local/bin/docker-compose
42 ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
43 docker run hello-world
44 yum install -y --disableexcludes=kubernetes kubeadm-1.15.5-0.x86_64 kubectl-1.15.5-0.x86_64 kubelet-1.15.5-0.x86_64
45 systemctl enable --now kubelet
46 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
47 mkdir -p $HOME/.kube
48 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
49 sudo chown $(id -u):$(id -g) $HOME/.kube/config
50 kubectl get pods --all-namespaces
51 kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
52 kubectl get pods --all-namespaces
53 kubestl get nodes
54 kubectl get nodes
55 systemctl enable --now kubelet
56 kubectl get nodes
57 kubeadm reset
58 kubectl get nodes
59 kubectl get pods --all-namespaces
60 clear
61 kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
62 kubectl get pods --all-namespaces
63 kubeadm reset
64 kubectl get pods --all-namespaces
65 kubeadm reset
66 history
67 clear
68 kubectl get pods --all-namespaces
69 kubectl get nodes
70 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
71 curl -O https://docs.projectcalico.org/v3.8/manifests/calico.yaml
72 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
73 clear
74 kubectl get pods --all-namespaces
75 mkdir -p $HOME/.kube
76 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
77 kubectl get pods --all-namespaces
78 systemctl enable --now kubelet
79 mkdir $HOME/.kube
80 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
81 sudo chown $(id -u):$(id -g) $HOME/.kube/config
82 kubectl get pods --all-namespaces
83 sudo systemctl enable docker.service
84 sudo service kubelet restart
85 kubectl get pods --all-namespaces
86 kubectl get nodes
87 sudo kubeadm reset
88 sudo swapoff -a
89 sudo kubeadm init --pod-network-cidr=10.244.10.0/16 --kubernetes-
90 version "1.18.3"
91 sudo rm -rf /home/cm/.kube
92 mkdir -p $HOME/.kube
93 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/confi
94 mkdir -p $HOME/.kube
95 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
96 kubectl get pods --all-namespaces
97 systemctl enable --now kubelet
98 clear
99 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
100 mkdir -p $HOME/.kube
101 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
102 kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
103 kubectl get pods --all-namespaces
104 kubectl get nodes
105 kubectl get pods --all-namespaces
106 clear
107 kubectl get pods --all-namespaces
108 mkdir -p $HOME/.kube
109 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
110 sudo chown $(id -u):$(id -g) $HOME/.kube/config
111 kubectl get pods --all-namespaces
112 mkdir -p $HOME/.kube
113 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
114 clear
115 histmkdir -p $HOME/.kube
116 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
117 clear
118 mkdir -p $HOME/.kube
119 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
120 mkdir -p $HOME/.kube
121 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
122 kubectl get pods
123 systemctl enable --now kubelet
124 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
125 kubeadm reset
126 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
127 mkdir -p $HOME/.kube
128 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
129 kubectl get pods
130 kubectl get pods --all-namespaces
131 export KUBECONFIG=/etc/kubernetes/admin.conf
132 systemctl enable --now kubelet
133 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
134 kubeadm reset
135 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
136 mkdir -p $HOME/.kube
137 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
138 kubectl get pods --all-namespaces
139 clear
140 kubectl get pods --all-namespaces
141 kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
142 kubectl get pods --all-namespaces
143 kubectl get nods
144 kubectl get nodes
145 clear
146 kubectl get nodes
147 kubectl version
148 kubectl get pods --all-namespaces
149 kubectl describe pod calico-node-g569t
150 kubectl get pods --all-namespaces
151 kubectl describe pod calico-node-g569t
152 kubectl describe pod calico-node-g569t -n kube-system
153 clear
154 kubectl get pods --all-namespaces
155 kubectl get all -n kube-system
156 kubectl delete deployments calico-node
157 kubectl delete deployments calico-node -n kube-system
158 clear
159 kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
160 kubectl get pods --all-namespaces
161 kubectl delete pod calico-node-g569t -n kube-system
162 clear
163 kubectl get pods --all-namespaces
164 kubectl delete pod calico-node-s25xq -n kube-system
165 kubectl get pods --all-namespaces
166 clear
167 kubectl get pods --all-namespaces
168 kubectl describe pod calico-node-tj47
169 kubectl describe pod calico-node-tj47 -n kube-system
170 kubectl get pods --all-namespaces
171 kubectl describe pod calico-node-tj47 -n kube-system
172 kubectl get pods --all-namespaces
173 kubectl get nodes
174 clear
175 kubectl get nodes
176 kubectl version
177 kubectl get nodes
178 systemctl enable --now kubelet
179 kubectl get nodes
180 kubectl get pods --all-namespaces
181 kubectl get nodes
182 kubeadm reset
183 clear
184 kubeadm init --pod-network-cidr=10.96.0.0/16 --apiserver-advertise-address=192.168.56.10
185 rm -rf $HOME/.kube
186 mkdir -p $HOME/.kube
187 sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
188 sudo chown $(id -u):$(id -g) $HOME/.kube/config
189 kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
190 kubectl get pods --all-namespaces
191 clear
192 kubectl get nodes
193 kubectl get pods
194 kubectl get pods --all-namespaces
195 history
혹시 모르니 선생님이 봐주신 내용 history 따서 저장...
node2
1 setenforce 0
2 sestatus
3 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
4 systemctl stop firewalld && systemctl disable firewalld
5 systemctl stop NetworkManager && systemctl disable NetworkManager
6 swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
7 cat <<EOF > /etc/sysctl.d/k8s.conf
8 net.bridge.bridge-nf-call-ip6tables = 1
9 net.bridge.bridge-nf-call-iptables = 1
10 EOF
11 sysctl --system
12 cat <<EOF > /etc/yum.repos.d/kubernetes.repo
13 [kubernetes]
14 name=Kubernetes
15 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
16 enabled=1
17 gpgcheck=1
18 repo_gpgcheck=1
19 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
20 EOF
21 yum update
22 vi /etc/hosts
23 clear
24 yum install -y yum-utils device-mapper-persistent-data lvm2
25 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
26 yum update && yum install docker-ce
27 y
28 useradd dockeradmin
29 passwd dockeradmin
30 curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
31 chmod +x /usr/local/bin/docker-compose
32 ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
33 docker-compose -version
34 usermod -aG docker dockeradmin
35 systemctl enable --now docker && systemctl start docker
36 clear
37 docker run hello-world
38 free -h
39 yum install -y --disableexcludes=kubernetes kubeadm-1.15.5-0.x86_64 kubectl-1.15.5-0.x86_64 kubelet-1.15.5-0.x86_64
40 7. Kubernetes 설정 - Masterkubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo \
41 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
42 kubectl get pods --all-namespaces
43 kubectl get nodes
44 history
45 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
46 kubectl get nodes
47 kubeadm reset
48 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
49 systemctl enable kubelet.service
50 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
51 clear
52 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
53 kubeadm join 192.168.56.10:6443 --token bep7x3.fiz0cude8l4lu4py --discovery-token-ca-cert-hash sha256:bf7704a1669ee9fe73622626defc8bd396684c4bb41467e07ca6808c64a0dd17
54 kubeadm reset
55 kubeadm join 192.168.56.10:6443 --token a0ysm4.muxu3f3t3nro4t87 --discovery-token-ca-cert-hash sha256:e2fc865df3498870bbd81ab7e3b89a852be7e47f9d29545b9da3683ceae13206
56 kubectl get nodes
57 kubeadm reset
58 iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
59 kubeadm reset
60 kubeadm join 192.168.56.10:6443 --token k03d34.io8l347m1v6njl10 --discovery-token-ca-cert-hash sha256:7b672ddeea5cde0f6d86418c4fddec7d0d51a62c4f97a9d06eb0122923fdf0a6
61 kubeadm join 192.168.56.10:6443 --token k03d34.io8l347m1v6njl10 --discovery-token-ca-cert-hash sha256:7b672ddeea5cde0f6d86418c4fddec7d0d51a62c4f97a9d06eb0122923fdf0a6
62 kubeadm reset
63 clear
64 kubeadm join 192.168.56.10:6443 --token k03d34.io8l347m1v6njl10 --discovery-token-ca-cert-hash sha256:7b672ddeea5cde0f6d86418c4fddec7d0d51a62c4f97a9d06eb0122923fdf0a6
65 clear
66 kubectl version
67 docker ps -a
68 docker system prune
69 clear
70 docker system prune
71 clear
72 docker ps -a
73 exit
74 systemctl enable --now kubelet
75 kubeadm reset
76 vlear
77 clear
78 kubeadm join 192.168.56.10:6443 --token 8lw9zf.zlp9mo6urxjcwsdw --discovery-token-ca-cert-hash sha256:2177b1e20bbb303562771c0a6d7ba2251ce627b02e48356b1b04372336462f31
79 history
node1
1 setenforce 0
2 sestatus
3 sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
4 systemctl stop firewalld && systemctl disable firewalld
5 systemctl stop NetworkManager && systemctl disable NetworkManager
6 swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab
7 cat <<EOF > /etc/sysctl.d/k8s.conf
8 net.bridge.bridge-nf-call-ip6tables = 1
9 net.bridge.bridge-nf-call-iptables = 1
10 EOF
11 sysctl --system
12 cat <<EOF > /etc/yum.repos.d/kubernetes.repo
13 [kubernetes]
14 name=Kubernetes
15 baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
16 enabled=1
17 gpgcheck=1
18 repo_gpgcheck=1
19 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
20 EOF
21 yum update
22 vi /etc/hosts
23 clear
24 yum install -y yum-utils device-mapper-persistent-data lvm2
25 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
26 yum update && yum install docker-ce
27 y
28 useradd dockeradmin
29 passwd dockeradmin
30 curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
31 chmod +x /usr/local/bin/docker-compose
32 ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
33 docker-compose -version
34 usermod -aG docker dockeradmin
35 systemctl enable --now docker && systemctl start docker
36 clear
37 docker run hello-world
38 free -h
39 yum install -y --disableexcludes=kubernetes kubeadm-1.15.5-0.x86_64 kubectl-1.15.5-0.x86_64 kubelet-1.15.5-0.x86_64
40 7. Kubernetes 설정 - Masterkubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo \
41 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
42 kubectl get pods --all-namespaces
43 kubectl get nodes
44 history
45 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
46 kubectl get nodes
47 kubeadm reset
48 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
49 systemctl enable kubelet.service
50 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
51 clear
52 kubeadm join 192.168.56.10:6443 --token 2uyblq.3s2baw46dz66gnqo --discovery-token-ca-cert-hash sha256:2e12aa34e51ba58925729dd2a3724dad253e937e79122d1bfe96ae0ec1b5d311
53 kubeadm join 192.168.56.10:6443 --token bep7x3.fiz0cude8l4lu4py --discovery-token-ca-cert-hash sha256:bf7704a1669ee9fe73622626defc8bd396684c4bb41467e07ca6808c64a0dd17
54 kubeadm reset
55 kubeadm join 192.168.56.10:6443 --token a0ysm4.muxu3f3t3nro4t87 --discovery-token-ca-cert-hash sha256:e2fc865df3498870bbd81ab7e3b89a852be7e47f9d29545b9da3683ceae13206
56 kubectl get nodes
57 kubeadm reset
58 iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
59 kubeadm reset
60 kubeadm join 192.168.56.10:6443 --token k03d34.io8l347m1v6njl10 --discovery-token-ca-cert-hash sha256:7b672ddeea5cde0f6d86418c4fddec7d0d51a62c4f97a9d06eb0122923fdf0a6
61 kubeadm join 192.168.56.10:6443 --token k03d34.io8l347m1v6njl10 --discovery-token-ca-cert-hash sha256:7b672ddeea5cde0f6d86418c4fddec7d0d51a62c4f97a9d06eb0122923fdf0a6
62 kubeadm reset
63 clear
64 kubeadm join 192.168.56.10:6443 --token k03d34.io8l347m1v6njl10 --discovery-token-ca-cert-hash sha256:7b672ddeea5cde0f6d86418c4fddec7d0d51a62c4f97a9d06eb0122923fdf0a6
65 clear
66 kubectl version
67 docker ps -a
68 docker system prune
69 clear
70 docker system prune
71 clear
72 docker ps -a
73 exit
74 systemctl enable --now kubelet
75 kubeadm reset
76 vlear
77 clear
78 kubeadm join 192.168.56.10:6443 --token 8lw9zf.zlp9mo6urxjcwsdw --discovery-token-ca-cert-hash sha256:2177b1e20bbb303562771c0a6d7ba2251ce627b02e48356b1b04372336462f31
79 history
시간이 정말 후딱 간다...
클라우드 그루에서
이거 해보긔
ㅎㅎ.......
대쉬보드는minikube dashboard
대부분의 일은 master에서 처리할것
namespace
가상 머신 상태로 개발하면 많은 리소스들이 필요하기 때문에 컨테이너 가상화 사용중...필수적으로 사용할 것은 이런 컨테이너들을 다룰 수 있는 오케스트레이션 기술이 필요하다
오케스트레이션 도구의 표준화라 불리는 쿠버네티스를 사용하는 이유.
쿠버네티스가 사용하는 각각의 단위 기억하자!
쿠버네티스는 가장 작은 단위인 컨테이너를 그루핑 해서 부르고 이 단위를pod 라고 부른다.
kubectl get pods --all-namespaces
모든 네임스페이스를 가진 파드들을 조사한다
- READY: 클러스터를 구축한 상태이기 때문에 하나의 파드를 두 개의 노드에 나눠 작업 가능하다. 하나가 완벽하게 설치되었다.
namespace에 아무것도 적지 않으면 디폴트를 찾는거라 아무것도 나오지 않을것.
nohup kubectl proxy --port=8000 --address=192.168.56.14 --accept-hosts='^*$' >/dev/null 2>&1 &
프록시 설정은 하나만 해보기
kubectl run nginx-test --image=nginx --port 80 --generator=run-pod/v1
쿠버네티스가 알아서 리소스가 가장 한가한 pc에 설치했음(노드2번에 설치)
kubectl edit service nginx-test # (ClusterIp -> NodePort)
외부로 열어놓도록 할것
쿠버네티스 잘 사용하려면 yml 파일 잘 사용하도록 해볼것
바로 반영된당
바뀜!
엔진엑스 실행된것 잘 확인할 수 있다
host pc 위에 Virtual box 설치했음. 그 안에 세 대의 CentOS라는 리눅스가 있다.
그리고 이 안에 도커가 있다. 우리가 도커와 쿠버네티스를 설치해놓은 상태. 그리고 이 안에 nginx 설치해뒀다 가상화해서 띄워놓음!
지난주에는 도커 데스크탑에 nginx를 띄워놓았음.
현재는 centOS 위에 엔진엑스를 띄워놓은 것이고 각종 컨테이너들을 띄워놓을 예정.
가상화를 얘기할 때 포트포워딩...
쿠버네티스와 현재 베이그란트까지 씌워둔것이라 고민할게 많아졌다.
(..됐다)
현재 컨테이너삼아서 배포가능
nginx는 변경하지 않으면 80포트를 사용한다. 해당 포드는 이 안에서만 사용한다 (웹서버라서)
만약에 컨테이너 밖에서 실행한다면?
curl 명령어와 웹브라우저 실행과 같은것이라고 생각하자.
80포트는 웹서버라는 얘기. centOS자체는 80포트가 없다.
yum install -y net-tools
해보고
netstat -ntpl
해보면 80 없음
리눅스에는 웹서비스 80이 안된다. 컨테이너 안에 80이 열려있는것임
CentOS 사용하기 위해 포트포워딩이 사용되어있음
80:30926
호스트pc에서는 못들어간다!
버추얼박스가 막아뒀기 때문.
우리는 현재 베이그란트에서 버추얼박스 대신 관리중.
그럼 베이그란트에서 포트포워딩을 해주면 된다.
3만번대의 포트가 6만번대의 포트와 연결될것이다.
포트포워딩을 해주지 않으면 접속이 어렵다!
베이그란트에서 이런 내용을 어디서 추가하느냐?
베이그란트 파일에서!
하단에 포트포워딩 넣어줌
이런 식의 구성이 된다.
수정 후
vagrant reload master
하면
수정 내용이 반영된다.
kubestl get nodes
그리고 다시접속해보면..!
refused?
나는 아예 su -가 접속이 안된다
ㅋㅋ미친
systemctl status kubelet
으로 상태확인해보기
kubectl get svc
curl -x GET https://127.0.0.1:60000
기억하자!!!!
어떠한 서비스가 되었던간에 리눅스에 설치되어야 사용가능
nodejs 는 외부에서 접속가능
기본적인 그림!
이걸 도커에서 사용할때
도커에서 사용할때 첫 번째 필요한것은 이미지!
이미지가 있어야 컨테이너를 생성할 수 있다.
실행하기위해서는 CMD나 ENTRYPOINT 사용.
도커파일로 이미지 만들어서 컨테이너화 시키면 외부에서 접속하려면 포트 사용
내부적인 컨테이너는 기본적으로 8000번으로 사용한다.
docker run -d -p <포트포워딩> <이미지 이름:태그>
쿠버네티스로 설치할 때 (허브사이트에 이미지가 올라와있다고 가정)
최소 단위인 파드 만든다.
파드를 만들 때 기본적인 틀
서비스도...
이런게 있당
요로케
이렇게 리눅스 버전이 완성되면 도커버전을 만들어볼것.
현재 리눅스에는 다 도커가 있기때문에 실행가능
이미지 빌드하고 실핼할 때 포워딩 걸어주면 실행될것ㅇㅣ야~~
쿠버네티스 버전을 만들땐 파드를 먼저 생성해준다.
vi editor 사용해서 만들어준다. 그 다음에 서비스 만들어줄것
쿠버네티스의 서비스가 포트를 열어주는 기능이기때문!