**쿠버네티스 이용
-
docker desktop의 쿠버네티스 사용(minikube 사용하는 것과 동일)
-
minikube 다운
-
리눅스에 직접 쿠버네티스를 사용
->project 할 때는 minikube 사용 안함
->hybrid, public cloud 사용 -> AWS, GCP에 올려서 사용
# Vagrantfile
Vagrant.configure("2") do |config|
# Node1
config.vm.define:"node-1" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider:virtualbox do |vb|
vb.name="node-1"
vb.customize ["modifyvm", :id, "--cpus", 1]
vb.customize ["modifyvm", :id, "--memory", 1024]
end
cfg.vm.host_name="node1"
# cfg.vm.synced_folder ".", "/vagrant", type: "nfs"
cfg.vm.network "private_network", ip: "192.168.56.11"
cfg.vm.network "forwarded_port", guest: 22, host: 19211, auto_correct: false, id: "ssh"
cfg.vm.network "forwarded_port", guest: 8080, host: 18080
cfg.vm.provision "shell", path: "bash_ssh_conf_4_CentOS.sh"
end
# Node2
config.vm.define:"node-2" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider:virtualbox do |vb|
vb.name="node-2"
vb.customize ["modifyvm", :id, "--cpus", 1]
vb.customize ["modifyvm", :id, "--memory", 1024]
end
cfg.vm.host_name="node2"
# cfg.vm.synced_folder ".", "/vagrant", type: "nfs"
cfg.vm.network "private_network", ip: "192.168.56.12"
cfg.vm.network "forwarded_port", guest: 22, host: 19212, auto_correct: false, id: "ssh"
cfg.vm.network "forwarded_port", guest: 8080, host: 28080
cfg.vm.provision "shell", path: "bash_ssh_conf_4_CentOS.sh"
end
# master
config.vm.define:"master" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider:virtualbox do |vb|
vb.name="master"
vb.customize ["modifyvm", :id, "--cpus", 2]
vb.customize ["modifyvm", :id, "--memory", 2048]
end
cfg.vm.host_name="master"
#cfg.vm.synced_folder ".", "/vagrant", type: "nfs"
cfg.vm.network "private_network", ip: "192.168.56.10"
cfg.vm.network "forwarded_port", guest: 22, host: 19214, auto_correct: false, id: "ssh"
cfg.vm.network "forwarded_port", guest: 8080, host: 48080
cfg.vm.network "forwarded_port", guest: 8001, host: 48001
end
end
$vagrant up
$vagrant status
Current machine states:
node-1 running (virtualbox)
node-2 running (virtualbox)
master running (virtualbox)
This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
=> linux 서버 단기간에 3대 설치됨
ubuntu -> demian계열
centOS -> redhat계열
$vagrant halt (3개의 서버 종료)
$vagrant halt node-2
$vagrant destory (3개의 서버 삭제)
$vagrant destory node-2
$vagrant up node-2(start를 내포하고 있음)
$vagrant ssh master(접속)
[vagrant@ansible-server ~]$ sudo vi /etc/hostname
$vagrant ssh node-1
[vagrant@jenkins-server ~]$ sudo vi /etc/hostname
$vagrant ssh node-2
[vagrant@tomcat-server ~]$ sudo vi /etc/hostname
$vagrant halt
$vagrant up
$vagrant reload(halt + up)
$vagrant ssh node-1
[vagrant@node1 ~]$ ping 192.168.56.10
[vagrant@node1 ~]$ ping 192.168.56.12
$vagrant ssh-config node-1
Host node-1
HostName 127.0.0.1
User vagrant
Port 19211
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /Users/mhee4/vagrant/.vagrant/machines/node-1/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
xshell 실행 ->
Node1
hostname 127.0.0.1
port 19211
사용자 이름 : vagrant
public key : /Users/mhee4/vagrant/.vagrant/machines/node-1/virtualbox/private_key
=vagrant ssh node-1
(node-1)ssh -i .vagrant/machines/node-1/virtualbox/private_key vagrant@192.168.56.11
(node-2)ssh -i .vagrant/machines/node-2/virtualbox/private_key vagrant@192.168.56.12
(master)ssh -i .vagrant/machines/master/virtualbox/private_key vagrant@192.168.56.10
**docker & kubernetes 설치하기**
(참고)
https://github.com/joneconsulting/k8s/blob/master/kubernetes_install.md
joneconsulting/k8s
Contribute to joneconsulting/k8s development by creating an account on GitHub.
github.com
-
Virtual Box 설치
-
Vagrant 설치
-
작업 폴더 생성
-
사전 준비 - Masteer, Node 모두
-
Docker 설치, 실행 -Master, Node 모두
-
Docker compose 설치
-
Docker 설치 확인
-
Kubernetes 설치 - Master, Node 모두
-
Kubernetes 설정 - Master
-
Kubernetes 노드 연결 - Node
-
Dashboard 설치 - Master
-
Test
kubeadm join 192.168.56.10:6443 --token 6h030a.ecbnj3rtn3qifq1i --discovery-token-ca-cert-hash sha256:d0ca18edc55fd23f5b5cfa67297dd6ab5b5658e7d791cf9ef3878c0a808106d3
--에러 잡기
node에 설치한 kubelet 버전과 master에 설치한 버전이 달라서 생기는 에러
(node)$yum erase kube*
(node)$kubelet version
(node)$docker version
(node)$kubeadm reset
(node)$rm -rf $HOME/.kube/config
(node)$yum install -y kubeadm kubectl kubelet
(master)$kubectl get pods
(master)$kubectl get nodes
(master)$kubectl get pods --all-namespaces
(master)$kubectl get pods --all -n kube-system
(master)$kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-test 1/1 Running 0 2m36s 192.168.166.129 node1 <none> <none>
(master)$kubectl expose pod nginx-test
(master)$kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 140m
nginx-test ClusterIP 10.96.141.61 <none> 80/TCP 6s
(master)$kubectl edit service nginx-test (service : 외부랑 이어주기 위한 경로역할)
apiVersion: v1
kind: Service
metadata:
creationTimestamp: "2021-02-16T06:46:02Z"
labels:
run: nginx-test
name: nginx-test
namespace: default
resourceVersion: "12630"
uid: 68edf7c2-a04f-42e0-a178-ae46b4fd4b57
spec:
clusterIP: 10.96.141.61
clusterIPs:
- 10.96.141.61
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx-test
sessionAffinity: None
type: NodePort
status:
loadBalancer: {}
(master)$kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 149m
nginx-test NodePort 10.96.141.61 <none> 80:30069/TCP 9m49s
(master)$curl -X GET http://127.0.0.1:30069


$netstat -ntpl (열려져 있는 포트 확인)
$kubectl get svc (port-forwarding 확인)
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h4m
nginx-test NodePort 10.96.141.61 <none> 80:30069/TCP 44m


#Vagrantfile
# master
config.vm.define:"master" do |cfg|
cfg.vm.box = "centos/7"
cfg.vm.provider:virtualbox do |vb|
vb.name="master"
vb.customize ["modifyvm", :id, "--cpus", 2]
vb.customize ["modifyvm", :id, "--memory", 2048]
end
cfg.vm.host_name="master"
#cfg.vm.synced_folder ".", "/vagrant", type: "nfs"
cfg.vm.network "private_network", ip: "192.168.56.10"
cfg.vm.network "forwarded_port", guest: 22, host: 19214, auto_correct: false, id: "ssh"
cfg.vm.network "forwarded_port", guest: 8080, host: 48080
cfg.vm.network "forwarded_port", guest: 8001, host: 48001
end
end
$vagrant reload master
$sudo ssh master
password : dockeradmin
$kubectl get nodes
$kubectl get svc
(master)$curl -X GET http://127.0.0.1:30069


⭐️cloud-guru 실습해보기
Launching an EKS Cluster
GCP, Kubernetes
Deploying to a Google Kubernetes Engine Cluster
https://learn.acloud.guru/handson/61a6bef0-24f6-446e-8c30-e89fccb7d6d9
'CLOUD > Docker' 카테고리의 다른 글
2/22 - 도커/쿠버네티스 활용 컨테이너 개발 9차시 (0) | 2021.02.22 |
---|---|
2/19 - 도커/쿠버네티스 활용 컨테이너 개발 8차시 (0) | 2021.02.19 |
2/15 - 도커/쿠버네티스 활용 컨테이너 개발 6차시 (0) | 2021.02.15 |
2/10 - 도커/쿠버네티스 활용 컨테이너 개발 5차시 (0) | 2021.02.10 |
2/9 - 도커/쿠버네티스 활용 컨테이너 개발 4차시 (0) | 2021.02.09 |