티스토리 뷰

Kubernetes

01 Minikube 설치 on CentOS7.5

zerobig-k8s 2018. 8. 15. 19:39

<참조> 

https://kubernetes.io/docs/tasks/tools/install-minikube/

https://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/

https://kubernetes.io/docs/tasks/tools/install-kubectl/

 



2020년 3월 5일 추가사항


Kubernetes를 처음 스터디 하는 과정에서 실습을 위해 Minikube를 설치하게 된다.

그러나 이런 저런 이유로 설치도 다소 번거롭고 설치 후 구동이 안되는 경우도 종종 발생하게 된다.

Windows 환경에서 Kubernetes 실습 환경을 구성하려는 사용자들을 대상으로 이에 대한 대안을 소개하고자 한다.


[K8S 초보자용] Docker 클라이언트를 사용하여 쿠버네티스 설치하기






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/|  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/|  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/| 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 들을 따라할 준비가 되었다. 고고~~~

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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
글 보관함