참조 문서 : https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-from-a-package
1.1 리파지토리 설정
#1. Update apt package index
sudo apt-get update
#2. install Packages to allow apt to use a repository over HTTPS
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
#3. Add Docker's official GPG key :
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# key verifications ==> fingerprint : 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
sudo apt-key fingerprint 0EBFCD88
#4.
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
####echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
#1. Update the apt package index.
sudo apt-get update -y
#2. install the latest version of Docker
sudo apt-get install docker-ce
# apt-cache policy docker-engine
#3. verification
docker version
$ sudo docker run hello-world
1.3 쿠버네티스 (Kubernetes) 설치
sudo apt-get install bridge-utils
sudo apt-get install git -y
sudo git clone https://github.com/kubernetes/kubernetes.git
# 설치 파일 및 바이너리 다운로드
cd /root/kubernetes/cluster/ubuntu
./download-release.sh
vi /root/kubernetes/cluster/ubuntu/config-default.sh
config-default.sh 수정
export nodes=${nodes:-"root@192.168.50.11 root@192.168.50.2"}
roles=${roles:-"ai i"}
export NUM_NODES=2
nodes에 추가되는 아이피는 마스터 서버를 첫 번째로 지정하고,
노드 서버들은 그 뒤에 나열하면 된다. (스페이스로 구분)
roles에 추가되어 있는 a는 마스터를 의미하여 i는 노드를 ai는 마스터&노드를 의미한다.
nodes 설정에 추가된 호스트 리스트 갯수에 맞게 설정한다.
1.5 RSA 키 생성
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
1.6 클러스터 배포 및 구동
kube-up 스크립트가 실행되면 바이너리, 설정 파일이 모든 node 머신에 복사되고(using scp),
kubernetes 가 실행된다
cd /root/kubernetes/cluster
KUBERNETES_PROVIDER=ubuntu ./kube-up.sh
1.7 Path 추가
- root 홈 디렉토리의 .bashrc 파일에 아래 패스 추가
PATH=$PATH:/root/kubernetes/cluster/ubuntu/binaries/
PATH=$PATH:/opt/bin/
1.8 Node 확인
kubectl get nodes
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl
sudo -i
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<eof>/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm
kubeadm init
1.12 MiniKube 설치
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.28.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
ㅇ 설치 확인
minikube version
kubectl version
ㅇ 초기화
minikube start
아래와 같이 리셋을 하면, docker container가 없다.
kubeadm reset
kubernetes를 초기화 하면 Kube에 필요한 docker container들이 올라와 있는것을 확인할 수 있다.
kubeadm init
cluster를 시작하기 위해서는, 아래 명령어를 실행 해야 한다고 함.
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
클러스터에 조인하기 위해서 명령어와 토큰값을 반환해줌
kubeadm join 172.31.20.200:6443 --token nrno8w.dbcofbn9d42llfr2 --discovery-token-ca-cert-hash sha256:5ef04e41aa11050523c6320a536ecaa57d6d22cc856a3879b8df9ddb36a16e1c
그런데, .kube 폴더에 넣으면 잘 동작 않함
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
kubectl run nginx --image=nginx:1.10.0
ㅇ 설치
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
ㅇ 설치 확인
$ docker-compose --version
docker-compose version 1.21.2, build 1719ceb
ㅇ 삭제
sudo rm /usr/local/bin/docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose #확인 $ docker-compose --version # 삭제 sudo rm /usr/local/bin/docker-compose |
ㅇ실행
$ docker-compose up -d
docker-compose.yml 파일을 기준으로 실행한다.
version: '3.3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
ADB와 Logcat 이용하여 스마트폰 디버깅 (2) | 2020.03.16 |
---|---|
자녀 IT교육 - 자녀와 게임 만들어 Play Store 출시하기 (8) | 2020.03.15 |
RESTful API with Flask (0) | 2020.03.10 |
Elasticsearch x Python - 엘리스틱 서치 연동 (0) | 2020.03.10 |
Heroku 사용기 (0) | 2020.03.09 |
댓글 영역