Print
카테고리: [ Cloud Computing & MSA ]
조회수: 14623

Microk8s 설치기

Install MicroK8s on Linux
snap install microk8s --classic

명령어로 설치해야 하는데...

snap 이 없어서 일단 설치 진행함.
* 참고URL : 
https://snapcraft.io/docs/installing-snap-on-centos

            1) EPEL repository 먼저 설치하고 

[root@TEST01]# cat /etc/centos-release
CentOS Linux release 7.8.2003 (Core)
[root@TEST01]# yum install epel-release

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.kakao.com
* extras: mirror.kakao.com
* updates: mirror.navercorp.com
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:7-11 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===========================================================================================================
Package Arch Version Repository Size
===========================================================================================================
Installing:
epel-release noarch 7-11 extras 15 k

Transaction Summary
===========================================================================================================
Install 1 Package

Total download size: 15 k
Installed size: 24 k
Is this ok [y/d/N]: y
Downloading packages:
epel-release-7-11.noarch.rpm | 15 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : epel-release-7-11.noarch 1/1
Verifying : epel-release-7-11.noarch 1/1

Installed:
epel-release.noarch 0:7-11

Complete!

 

            2) snapd 패키지 설치

[root@TEST01]# yum install snapd

Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink | 5.1 kB 00:00:00
* base: mirror.kakao.com
* epel: mirrors.bfsu.edu.cn
* extras: mirror.kakao.com
* updates: mirror.navercorp.com
epel | 4.7 kB 00:00:00
(1/3): epel/x86_64/group_gz | 96 kB 00:00:00
(2/3): epel/x86_64/updateinfo | 1.0 MB 00:00:01
(3/3): epel/x86_64/primary_db | 7.0 MB 00:00:02
Resolving Dependencies
--> Running transaction check
---> Package snapd.x86_64 0:2.51-1.el7 will be installed

.....


Installed:
snapd.x86_64 0:2.51-1.el7

Dependency Installed:
audit-libs-python.x86_64 0:2.8.5-4.el7 bash-completion.noarch 1:2.1-8.el7
checkpolicy.x86_64 0:2.5-8.el7 fuse.x86_64 0:2.9.2-11.el7
fuse-libs.x86_64 0:2.9.2-11.el7 libcgroup.x86_64 0:0.41-21.el7
libsemanage-python.x86_64 0:2.5-14.el7 libzstd.x86_64 0:1.5.0-1.el7
policycoreutils-python.x86_64 0:2.5-34.el7 python-IPy.noarch 0:0.75-6.el7
setools-libs.x86_64 0:3.3.8-4.el7 snap-confine.x86_64 0:2.51-1.el7
snapd-selinux.noarch 0:2.51-1.el7 squashfs-tools.x86_64 0:4.3-0.21.gitaae0aff4.el7
squashfuse.x86_64 0:0.1.102-1.el7 squashfuse-libs.x86_64 0:0.1.102-1.el7

Dependency Updated:
selinux-policy.noarch 0:3.13.1-268.el7_9.2 selinux-policy-targeted.noarch 0:3.13.1-268.el7_9.2

Complete!

 

            3) snap 관련 설정 : systemd에 주요 snap 통신 socket 관리 활성화, classic snap 지원 활성화를 위한 심볼릭 링크 생성

[root@TEST01]# systemctl enable --now snapd.socket
Created symlink from /etc/systemd/system/sockets.target.wants/snapd.socket to /usr/lib/systemd/system/snapd.socket.
[root@TEST01]# ln -s /var/lib/snapd/snap /snap

 

            4) 다시 로그인!

 

그럼 다시 Microk8s 를 설치해보자!

[root@TEST01]# snap install microk8s --classic

2021-09-09T10:20:43+09:00 INFO Waiting for automatic snapd restart...
Warning: /var/lib/snapd/snap/bin was not found in your $PATH. If you've not restarted your session
since you installed snapd, try doing that. Please see https://forum.snapcraft.io/t/9469
for more details.

microk8s (1.21/stable) v1.21.4 from Canonical✓ installed

설치 완료!

기동되는 동안 Kubernetes 상태 확인
[root@TEST01]# microk8s status --wait-ready
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
addons:
enabled:
ha-cluster # Configure high availability on the current node
disabled:
ambassador # Ambassador API Gateway and Ingress
cilium # SDN, fast with full network policy
dashboard # The Kubernetes dashboard
dns # CoreDNS
fluentd # Elasticsearch-Fluentd-Kibana logging and monitoring
gpu # Automatic enablement of Nvidia CUDA
helm # Helm 2 - the package manager for Kubernetes
helm3 # Helm 3 - Kubernetes package manager
host-access # Allow Pods connecting to Host services smoothly
ingress # Ingress controller for external access
istio # Core Istio service mesh services
jaeger # Kubernetes Jaeger operator with its simple config
keda # Kubernetes-based Event Driven Autoscaling
knative # The Knative framework on Kubernetes.
kubeflow # Kubeflow for easy ML deployments
linkerd # Linkerd is a service mesh for Kubernetes and other frameworks
metallb # Loadbalancer for your Kubernetes cluster
metrics-server # K8s Metrics Server for API access to service metrics
multus # Multus CNI enables attaching multiple network interfaces to pods
openebs # OpenEBS is the open-source storage solution for Kubernetes
openfaas # openfaas serverless framework
portainer # Portainer UI for your Kubernetes cluster
prometheus # Prometheus operator for monitoring and logging
rbac # Role-Based Access Control for authorisation
registry # Private image registry exposed on localhost:32000
storage # Storage class; allocates storage from host directory
traefik # traefik Ingress controller for external access

이미 떠버렸네! 내 손이 너무 느림..ㅋㅋ

원한다면 서비스로 등록 가능
microk8s enable dashboard dns registry istio

하지만 난 원하지 않아서 그냥 둠.

Start kubernetes 

[root@TEST01]# microk8s kubectl get all --all-namespaces

NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/calico-node-j8glg 1/1 Running 0 32m
kube-system pod/calico-kube-controllers-f7868dd95-4xbbw 1/1 Running 0 32m

NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 33m

NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/calico-node 1 1 1 1 1 kubernetes.io/os=linux 33m

NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/calico-kube-controllers 1/1 1 1 33m

NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/calico-kube-controllers-f7868dd95 1 1 1 32m

Kubernetes Dashboard에 접근해보기 

[root@TEST01]# microk8s dashboard-proxy

Checking if Dashboard is running.
Warning: apiregistration.k8s.io/v1beta1 APIService is deprecated in v1.19+, unavailable in v1.22+; use apiregistration.k8s.io/v1 APIService
Waiting for Dashboard to come up.
Dashboard will be available at https://127.0.0.1:10443
Use the following token to login:
eyJhbGciOiJSUzI1NiIsImtpZCI6IjlfTHVrejFlQWEwNEhOcUxoaG9SdGlxdE5uLU9Pam9PdjJWVm9HRE82NGsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLXY5dGdxIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI2NTJlOTc1ZS0zN2MwLTQwMjItODRjNi1lMDY5Njg1ZGRlOGIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGVmYXVsdCJ9.gYtQ-Ji0hUU2bTKv6zNKzGC0IgQnb-ZRGn6xnh-R7785PtT_ya_ZsoBk1SU2UIEe8T6efWU_nTjI_tUDuTeqiUDSrzKOzFhJWagBuo3plh6uV9NfgmkUgst0DZlns7W3l4grHAQvE7QDq6lfCNguZu2TqBTCjwd-I85a7oQYknjw6V5Px45WkKJ3saDYeIisKPj5BCM_SgqPxZcySyxtwLIkzd4SaSAGjmP5JbQROMm28NZiQtctm8HeZti9xM5sFQmfdoUF9UXBqPTIiWBK40wNGKaZzVj9FYnvpliT7c9ZYXj5ZoooSXyRijWeB-01CMzvTVamGTAfGo8Ok_54Vw

        아...https://127.0.0.1:10443 에..접속해볼수가 없네..이런 ㅎ

Kubernetes stop/start 해보자

[root@TEST01]# microk8s stop

Run service command "stop" for services ["daemon-apiserver" "daemon-apiserver-kicker" "daemon-cluster-agent" "daemon-container…
Stopped.

[root@TEST01]# microk8s kubectl get all -all-namespace

microk8s is not running, try microk8s start

       stop 잘 되었고!

[root@TEST01]# microk8s start

Started.

[root@TEST01]# microk8s status

microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
addons:
enabled:
dashboard # The Kubernetes dashboard
ha-cluster # Configure high availability on the current node
metrics-server # K8s Metrics Server for API access to service metrics
disabled:
ambassador # Ambassador API Gateway and Ingress
cilium # SDN, fast with full network policy
dns # CoreDNS
fluentd # Elasticsearch-Fluentd-Kibana logging and monitoring
gpu # Automatic enablement of Nvidia CUDA
helm # Helm 2 - the package manager for Kubernetes
helm3 # Helm 3 - Kubernetes package manager
host-access # Allow Pods connecting to Host services smoothly
ingress # Ingress controller for external access
istio # Core Istio service mesh services
jaeger # Kubernetes Jaeger operator with its simple config
keda # Kubernetes-based Event Driven Autoscaling
knative # The Knative framework on Kubernetes.
kubeflow # Kubeflow for easy ML deployments
linkerd # Linkerd is a service mesh for Kubernetes and other frameworks
metallb # Loadbalancer for your Kubernetes cluster
multus # Multus CNI enables attaching multiple network interfaces to pods
openebs # OpenEBS is the open-source storage solution for Kubernetes
openfaas # openfaas serverless framework
portainer # Portainer UI for your Kubernetes cluster
prometheus # Prometheus operator for monitoring and logging
rbac # Role-Based Access Control for authorisation
registry # Private image registry exposed on localhost:32000
storage # Storage class; allocates storage from host directory
traefik # traefik Ingress controller for external access

 

        start 도 잘 되었다!

 

 

* 참고 URL : https://microk8s.io/