티스토리 뷰
<참조>
https://kubernetes.io/docs/tasks/tools/install-minikube/
https://kubernetes.io/docs/tasks/tools/install-kubectl/
2020년 3월 5일 추가사항 Kubernetes를 처음 스터디 하는 과정에서 실습을 위해 Minikube를 설치하게 된다. 그러나 이런 저런 이유로 설치도 다소 번거롭고 설치 후 구동이 안되는 경우도 종종 발생하게 된다. Windows 환경에서 Kubernetes 실습 환경을 구성하려는 사용자들을 대상으로 이에 대한 대안을 소개하고자 한다. |
Kubernetes 의 Tutorial 을 진행하기 위해서는 먼저 Minikube 설치가 선행되어야 한다. 물론 구글 클라우드 상에 클러스터를 구성하여 활용하는 방법도 있으나 이런 저런 사유로 여건이 안되신다면 Minikube 가 답이다.
오늘은 먼저 CentOS 상에 설치하는 내용부터 시작하겠다.
필자가 처음 Minikube 를 설치 해 본것이 5월 초였다. 이제 3개월이 지나 다시 설치 해 보니 여전히 만만치 않은 작업이라는 생각이 든다.
사실 Minikube 를 설치하고 구동하는 것은 아주 간단하다. 그러나 설치를 위해 사전에 준비하고 확인해야 하는 것들이 많고 공식 설치 가이드 조차도 절차상에 혼란을 주는 부분이 다소 있는 듯 하다. 실제 Tutorial 도 따라해보면 정상적으로 동작되지 않는 부분도 있다.(물론 필자의 영어가 짧아서, 기술의 깊이가 얕아서인 것도 살짝 인정 ^^)
이 글을 보시는 분들은 대부분 이제 막 Kubernetes 를 접하신 분들일거라 전제로하고, 그런 분들을 위해 조금이나마 도움이 되길 바라는 마음에서 블로그를 시작하게 되었으며, 다음 단계들을 하나씩 따라가다 보면 결국에 신세계를 체험시켜 줄 Minikube 를 만나 볼 수 있을 것이다.
우리가 이루려는 궁극적인 목적은 Minikube 를 설치하는 과정 자체를 이해하는 것이 아니라, Kubernetes 의 Tutorial 들을 직접 실습해보고 Kubernetes 에 대해 제대로 이해해 나가는 것이다. 지금 우리는 이를 위해 필요한 도구를 준비하는 과정에 있다. 이 글에서 단계별 깊은 설명은 다소 부족할지도 모르겠다. (사실 깊은 설명을 할 정도의 실력이 아니긴 하지만... 핑계삼아 :) )
필자조차도 아직 초보의 입장이다 보니 내용 상 오류 또는 이해를 제대로 못한 부분이 있을 수 있다. 이 점을 감안하고 혹시 내용 상 바로 잡아야 할 부분이 있다면 피드백을 통해 함께 바른 이해를 해 나갔으면 좋겠다.
실습환경
- CentOS7.5 on VMware® Workstation 12 Pro
Before you begin
독자들의 컴퓨터의 BIOS 설정에서 VT-x 또는 AMD-v 가상화 기능이 활성화 되어야만 한다.
우리는 Vmware 에 CentOS7 를 설치하고 그 기반 위에 Minikube 를 설치하고 있다. 따라서 다음과 같이 Vmware 의 VM 구성 정보에서 다음을 체크해주고 구동하면 된다.
지원 여부에 대해 확인하고 싶다면, 다음과 같은 명령을 수행하고 그 출력 결과에 vmx 라는 키워드가 출력되는지 확인해 본다.
Install a Hypervisor
우리는 하이퍼바이저로 VirtualBox를 이용할 것이다.
설치 과정에서 필자도 5월 초에 설치하며 정리했던 내용을 다시 따라 한 것인데, 8월 15일 현재 시점에 별 문제가 없음을 확인 했다.
1. Repo 파일 설치
1 2 3 4 5 6 7 8 9 10 11 12 | [root@zerobig-vm-c ~]# cd /etc/yum.repos.d/ [root@zerobig-vm-c yum.repos.d]# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo --2018-08-15 16:48:54-- http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo Resolving download.virtualbox.org (download.virtualbox.org)... 23.35.220.157 Connecting to download.virtualbox.org (download.virtualbox.org)|23.35.220.157|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 259 [text/plain] Saving to: ‘virtualbox.repo’ 100%[================================================================================================================================================================================================>] 259 --.-K/s in 0s 2018-08-15 16:48:55 (29.4 MB/s) - ‘virtualbox.repo’ saved [259/259] | cs |
2. 최신 패키지로 업데이트 및 커널 버전 체크
1 2 3 4 5 6 7 8 9 | [root@zerobig-vm-c yum.repos.d]# yum update Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: centos.mirror.moack.net * extras: centos.mirror.moack.net * updates: ftp.iij.ad.jp base <이햐 생략> | cs |
두 명령의 출력 버전이 일치해야 한다고 한다. 차이가 나면 reboot 실시한다.
1 2 3 4 | [root@zerobig-vm-c yum.repos.d]# rpm -qa kernel |sort -V |tail -n 1 kernel-3.10.0-862.el7.x86_64 [root@zerobig-vm-c yum.repos.d]# uname -r 3.10.0-862.11.6.el7.x86_64 | cs |
3. 의존성 패키지들 설치
1 2 3 4 5 6 | [root@zerobig-vm-c yum.repos.d]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm(을)를 복구합니다 경고: /var/tmp/rpm-tmp.6fGN21: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY 준비 중... ################################# [100%] Updating / installing... 1:epel-release-7-11 ################################# [100%] | cs |
4. VirtualBox 최신 버전 설치
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | [root@zerobig-vm-c yum.repos.d]# yum install VirtualBox-5.2 Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile epel/x86_64/metalink | 5.1 kB 00:00:00 * base: centos.mirror.moack.net * epel: ftp.riken.jp * extras: centos.mirror.moack.net * updates: ftp.iij.ad.jp epel | 3.2 kB 00:00:00 (1/3): epel/x86_64/group_gz | 88 kB 00:00:00 (2/3): epel/x86_64/updateinfo | 934 kB 00:00:00 (3/3): epel/x86_64/primary | 3.6 MB 00:00:03 epel 12646/12646 Resolving Dependencies --> Running transaction check ---> Package VirtualBox-5.2.x86_64 0:5.2.16_123759_el7-1 will be installed --> Processing Dependency: libSDL-1.2.so.0()(64bit) for package: VirtualBox-5.2-5.2.16_123759_el7-1.x86_64 --> Running transaction check ---> Package SDL.x86_64 0:1.2.15-14.el7 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================================================================================================== Package Arch Version Repository Size ========================================================================================================================================================================================================================================== Installing: VirtualBox-5.2 x86_64 5.2.16_123759_el7-1 virtualbox 76 M Installing for dependencies: SDL x86_64 1.2.15-14.el7 base 204 k Transaction Summary ========================================================================================================================================================================================================================================== Install 1 Package (+1 Dependent package) Total download size: 76 M Installed size: 173 M Is this ok [y/d/N]: y Downloading packages: (1/2): SDL-1.2.15-14.el7.x86_64.rpm | 204 kB 00:00:00 warning: /var/cache/yum/x86_64/7/virtualbox/packages/VirtualBox-5.2-5.2.16_123759_el7-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 98ab5139: NOKEY===============================================-] 7.3 MB/s | 76 MB 00:00:00 ETA Public key for VirtualBox-5.2-5.2.16_123759_el7-1.x86_64.rpm is not installed (2/2): VirtualBox-5.2-5.2.16_123759_el7-1.x86_64.rpm | 76 MB 00:00:10 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Total 7.4 MB/s | 76 MB 00:00:10 Retrieving key from https://www.virtualbox.org/download/oracle_vbox.asc Importing GPG key 0x98AB5139: Userid : "Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>" Fingerprint: 7b0f ab3a 13b9 0743 5925 d9c9 5442 2a4b 98ab 5139 From : https://www.virtualbox.org/download/oracle_vbox.asc Is this ok [y/N]: y Running transaction check Running transaction test Transaction test succeeded Running transaction Warning: RPMDB altered outside of yum. Installing : SDL-1.2.15-14.el7.x86_64 1/2 Installing : VirtualBox-5.2-5.2.16_123759_el7-1.x86_64 2/2 Creating group 'vboxusers'. VM users must be member of that group! Verifying : VirtualBox-5.2-5.2.16_123759_el7-1.x86_64 1/2 Verifying : SDL-1.2.15-14.el7.x86_64 2/2 Installed: VirtualBox-5.2.x86_64 0:5.2.16_123759_el7-1 Dependency Installed: SDL.x86_64 0:1.2.15-14.el7 Complete! | cs |
5. VirtualBox 사용자 vboxusers 에 그룹 추가
1 | [root@zerobig-vm-c yum.repos.d]# usermod -a -G vboxusers zerobig | cs |
6. VirtualBox 구동
실제 구동명령은 Vmware 상의 CentOS 에 접속 한 후 터미널에서 수행한다.
1 | [zerobig@zerobig-vm-c ~]$ virtualbox | cs |
문제없다면, 다음과 같이 VirtualBox 가 구동 될 것이다.
Install kubectl
Kubernetes 에서 어플리케이션을 배포하고 관리할 때, Kubernetes 커맨드 라인 툴인 kubectl 을 이용하게 되는데, 이를 통해 클러스터의 리소스들을 조사할 수도 있고, 컴포넌트의 생성, 삭제 그리고 업데이트도 가능하다.
설치 방법에는 여러 버전이 존재하지만 필자는 다음과 같이 패키지 관리 도구를 이용해 진행하겠다.
1. native package management 를 통한 설치
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | [root@zerobig-vm-c yum.repos.d]# 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=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 > EOF [root@zerobig-vm-c yum.repos.d]# yum install -y kubectl Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: centos.mirror.moack.net * epel: mirror01.idc.hinet.net * extras: centos.mirror.moack.net * updates: ftp.iij.ad.jp kubernetes/signature | 454 B 00:00:00 Retrieving key from https://packages.cloud.google.com/yum/doc/yum-key.gpg Importing GPG key 0xA7317B0F: Userid : "Google Cloud Packages Automatic Signing Key <gc-team@google.com>" Fingerprint: d0bc 747f d8ca f711 7500 d6fa 3746 c208 a731 7b0f From : https://packages.cloud.google.com/yum/doc/yum-key.gpg Retrieving key from https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg kubernetes/signature | 1.4 kB 00:00:00 !!! kubernetes/primary | 34 kB 00:00:00 kubernetes 243/243 Resolving Dependencies --> Running transaction check ---> Package kubectl.x86_64 0:1.11.2-0 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================================================================================================================================================================================== Package Arch Version Repository Size ========================================================================================================================================================================================================================================== Installing: kubectl x86_64 1.11.2-0 kubernetes 7.5 M Transaction Summary ========================================================================================================================================================================================================================================== Install 1 Package Total download size: 7.5 M Installed size: 37 M Downloading packages: 경고: /var/cache/yum/x86_64/7/kubernetes/packages/a554c1728ecf79871b4d3e0fc797568e53149f4ed7ec7e437c949a02f197a1ab-kubectl-1.11.2-0.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 3e1ba8d5: NOKEY ] 1.3 MB/s | 7.4 MB 00:00:00 ETA Public key for a554c1728ecf79871b4d3e0fc797568e53149f4ed7ec7e437c949a02f197a1ab-kubectl-1.11.2-0.x86_64.rpm is not installed a554c1728ecf79871b4d3e0fc797568e53149f4ed7ec7e437c949a02f197a1ab-kubectl-1.11.2-0.x86_64.rpm | 7.5 MB 00:00:05 Retrieving key from https://packages.cloud.google.com/yum/doc/yum-key.gpg Importing GPG key 0xA7317B0F: Userid : "Google Cloud Packages Automatic Signing Key <gc-team@google.com>" Fingerprint: d0bc 747f d8ca f711 7500 d6fa 3746 c208 a731 7b0f From : https://packages.cloud.google.com/yum/doc/yum-key.gpg Retrieving key from https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg Importing GPG key 0x3E1BA8D5: Userid : "Google Cloud Packages RPM Signing Key <gc-team@google.com>" Fingerprint: 3749 e1ba 95a8 6ce0 5454 6ed2 f09c 394c 3e1b a8d5 From : https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : kubectl-1.11.2-0.x86_64 1/1 Verifying : kubectl-1.11.2-0.x86_64 1/1 Installed: kubectl.x86_64 0:1.11.2-0 Complete! | cs |
2. kubectl 구성
kubectl 이 Kubernetes 클러스터를 찾고 접근하기 위해서는 kubeconfig file 이 필요하다. 이 파일은 kube-up.sh 을 이용해서 클러스터를 생성하거나 또는 Minikube 클러스터가 성공적으로 배포되면 자동으로 생성된다. 자세한 내용은 getting started guides 을 참고하자. 만약 독자들이 생성하지 않았던 클러스터에 접근을 해야 한다면 Sharing Cluster Access document 를 참고하라. 기본적으로 kubectl 구성은 ~/.kube/conig 파일에서 참고하면 된다.
3. kubectl 구성 확인
클러스터 구성 상태 확인을 통해 kubectl 이 적절하게 구성되었는지 체크해 본다.
1 2 3 4 5 | [root@zerobig-vm-c yum.repos.d]# kubectl cluster-info Kubernetes master is running at http://localhost:8080 To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. The connection to the server localhost:8080 was refused - did you specify the right host or port? | cs |
URL 응답이 보이면, 클러스터에 접속하기 위한 적절한 설정이 된 것이다.
2번과 3번의 클러스터 구성 및 확인 부분은, 잠시 후 Minikube 가 성공적으로 구동되면, 자동으로 생성되고 정상 결과가 조회될 것이다.
Install Minikube
다음 명령을 수행하여 Minikube 최신 버전을 설치 한다. (8월 15일 현재 최신 버전은 0.28.2 다.)
1 2 3 4 | [root@zerobig-vm-c yum.repos.d]# curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.28.2/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 38.5M 100 38.5M 0 0 1746k 0 0:00:22 0:00:22 --:--:-- 1839k | cs |
Running Your Minikube
Minikube 를 구동 시킨다. 약 7~8분 소요된다. 잠시 휴식을 취하고 다시 확인해 보면 우아하게^^ 올라가 있을 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@zerobig-vm-c yum.repos.d]# minikube start Starting local Kubernetes v1.10.0 cluster... Starting VM... Downloading Minikube ISO 160.27 MB / 160.27 MB [============================================] 100.00% 0s Getting VM IP address... Moving files into cluster... Downloading kubeadm v1.10.0 Downloading kubelet v1.10.0 Finished Downloading kubeadm v1.10.0 Finished Downloading kubelet v1.10.0 Setting up certs... Connecting to cluster... Setting up kubeconfig... Starting cluster components... Kubectl is now configured to use the cluster. Loading cached images from config file. | cs |
드디어 Minikube 가 올라 왔다. 버전 확인 및 구동상태를 확인해 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | [root@zerobig-vm-c yum.repos.d]# minikube version minikube version: v0.28.2 [root@zerobig-vm-c yum.repos.d]# kubectl cluster-info Kubernetes master is running at https://192.168.99.100:8443 KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'. [root@zerobig-vm-c yum.repos.d]# cat ~/.kube/config apiVersion: v1 clusters: - cluster: certificate-authority: /root/.minikube/ca.crt server: https://192.168.99.100:8443 name: minikube contexts: - context: cluster: minikube user: minikube name: minikube current-context: minikube kind: Config preferences: {} users: - name: minikube user: client-certificate: /root/.minikube/client.crt client-key: /root/.minikube/client.key | cs |
짝짝~~~ 축하~~~~ 클러스터 구성 상태도 정상이고 config 도 생성되어 있음을 확인할 수 있다.
자, 이제 필자와 함께 Kubernetes 의 Tutorial 들을 따라할 준비가 되었다. 고고~~~
'Kubernetes' 카테고리의 다른 글
05 Kubernetes Basics - Using Minikube to Create a Cluster (0) | 2018.08.19 |
---|---|
04 Kubernetes Basics - Overview (0) | 2018.08.19 |
03 Hello Minikube (2) | 2018.08.16 |
02 Minikube 설치 on Ubuntu16.04 (2) | 2018.08.16 |
00 제로빅의 Kubernetes(쿠버네티스) Tutorial 실습기 (0) | 2018.08.15 |