본문 바로가기

엔지니어

Kubernetes : Minikube : 설치


Docker 컨테이너 오케스트레이션 시스템 Kubernetes 설치 및 구성합니다.
이 예에서는 Minikube를 설치하여 단일 노드에서 가상 머신 내에서 Kubernetes 클러스터를 구성합니다.
[1] 가상 머신을 이용하기 때문에 Minikube에서 지원하는 하이퍼 바이저를 설치해야합니다.
이 예에서는 KVM 스위치를 설치하고 진행합니다.
기타, VirtualBox, VMware Fusion, HyperKit이 가능합니다.
[root @ dlp ~]# yum -y install qemu-kvm libvirt libvirt-daemon-kvm
[root @ dlp ~]# systemctl start libvirtd
[root @ dlp ~]# systemctl enable libvirtd
[2] Kubernetes 저장소를 설정하고 필요한 도구를 설치하고 Minikube를 시작합니다.
[root @ dlp ~]# cat << 'EOF'> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name = Kubernetes
baseurl = https : //packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
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 @ dlp ~]# yum -y install kubectl
[root @ dlp ~]# wget https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 -O minikube
[root @ dlp ~]# wget https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2
[root @ dlp ~]# chmod 755 minikube docker-machine-driver-kvm2
[root @ dlp ~]# mv minikube docker-machine-driver-kvm2 / usr / local / bin /
[root @ dlp ~]# minikube version
minikube version : v0.25.2
[root @ dlp ~]# kubectl version -o json
{
  "clientVersion": {
    "major": "1"
    "minor": "10",
    "gitVersion": "v1.10.0"
    "gitCommit": "fc32d2f3698e36b93322a3465f63a14e9f0eaead"
    "gitTreeState": "clean"
    "buildDate": "2018-03-26T16 : 55 : 54Z"
    "goVersion": "go1.9.3"
    "compiler": "gc"
    "platform": "linux / amd64"
  }
}

# minikube 시작
[root @ dlp ~]# minikube start --vm-driver kvm2
Starting local Kubernetes v1.9.4 cluster ...
Starting VM ...
Downloading Minikube ISO
 142.22 MB / 142.22 MB 100.00 % 0s
Getting VM IP address ...
Moving files into cluster ...
Downloading localkube binary
 163.02 MB / 163.02 MB 100.00 % 0s
 65 B / 65 B 100.00 % 0s
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.

# 상태 확인
[root @ dlp ~]# minikube status
minikube : Running
cluster : Running
kubectl : Correctly Configured : pointing to minikube-vm at 192.168.39.110
[root @ dlp ~]# minikube service list
| ------------- | ---------------------- | ------------ ----------------- |
| NAMESPACE | NAME | URL |
| ------------- | ---------------------- | ------------ ----------------- |
| default | kubernetes | No node port |
| kube-system | kube-dns | No node port |
| kube-system | kubernetes-dashboard | http://192.168.39.110:30000 |
| ------------- | ---------------------- | ------------ ----------------- |

[root @ dlp ~]# minikube docker-env
export DOCKER_TLS_VERIFY = "1"
export DOCKER_HOST = "tcp : //192.168.39.110 : 2376"
export DOCKER_CERT_PATH = "/ root / .minikube / certs"
export DOCKER_API_VERSION = "1.23"
# Run this command to configure your shell :
# eval $ (minikube docker-env)

[root @ dlp ~]# kubectl cluster-info
Kubernetes master is running at https://192.168.39.110:8443

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

[root @ dlp ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready  1h v1.9.4

# 가상 머신 [minikube가 시작
[root @ dlp ~]# virsh list
 Id Name State
-------------------------------------------------- -
 1 minikube running
 
# 가상 머신에 SSH 액세스
[root @ dlp ~]# minikube ssh
                         _
            _ () ​​()
  ___ ___ (_) ___ (_) | | / ') _ | | _ __
/ '_`_`\ | | /'_`\ | || <() () | '_` \ /'__`\
| () () || || () || || | \`\ | (_) || | _)) (___ /
(_) (_) (_) (_) (_) (_) (_) (_) (_)`\ ___ / '(_ __ /'`\ ____)

$ hostname
minikube
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7d769e956904 fed89e8b4248 "/ sidecar --v = 2 --..."3 hours ago Up 3 ho k8s_si ..
39680ff90ecf 459944ce8cc4 "/ dnsmasq-nanny -v ..."3 hours ago Up 3 ho k8s_dn ..
e568a2ac6088 512cd7425a73 "/ kube-dns --domai ..."3 hours ago Up 3 ho k8s_ku ..
fd9bd248d82f e94d2f21bc0c "/ dashboard --inse ..."3 hours ago Up 3 ho k8s_ku ..
f2c59bf5dd0a gcr.io/k8s-minikube/storage-prer "/ storage-provisioner"3 hours ago Up 3 ho k8s_st ..
203ac12b2138 gcr.io/google_containers/pause3.0 "/ pause"3 hours ago Up 3 ho k8s_PO ..
6d88074f01dc gcr.io/google_containers/pause3.0 "/ pause"3 hours ago Up 3 ho k8s_PO ..
d44ea81b29f1 gcr.io/google_containers/pause3.0 "/ pause"3 hours ago Up 3 ho k8s_PO ..
3b26e522321b d166ffa9201a "/opt/kube-addons.sh"3 hours ago Up 3 ho k8s_ku ..
5a0a0833416d gcr.io/google_containers/pause3.0 "/ pause"3 hours ago Up 3 ho k8s_PO ..

$ exit
# minikube를 중지하려면 다음
[root @ dlp ~]# minikube stop
Stopping local Kubernetes cluster ...
Machine stopped.
# minikube 가상 머신을 제거하려면 다음
[root @ dlp ~]# minikube delete
Deleting local Kubernetes cluster ...
Machine deleted.
[root @ dlp ~]# virsh list --all
 Id Name State
-------------------------------------------------- -