MicroK8s: Setup Ingress Nginx Controller and Cert Manager on Kubernetes Single Node Cluster 재도전 중...

이상빈·2024년 8월 1일

sudo snap install microk8s --classic --channel=1.30

sudo usermod -a -G microk8s $USER
mkdir -p ~/.kube
chmod 0700 ~/.kube

You will also need to re-enter the session for the group update to take place:

su - $USER

alias kubectl='microk8s kubectl'

kubectl create deployment nginx --image=nginx

kubectl get pods

microk8s enable dns

microk8s enable hostpath-storage

microk8s stop

microk8s start

----------- https://microk8s.io/docs/getting-started

microk8s enable dns
microk8s enable dashboard
microk8s enable storage

microk8s disable dns
microk8s disable dashboard
microk8s disable storage

kubectl get all --all-namespaces

sangbinlee9@app-1-db:~$ kubectl get all --all-namespaces
NAMESPACE       NAME                                             READY   STATUS      RESTARTS        AGE
cert-manager    pod/cert-manager-b87697c98-m96kz                 1/1     Running     1 (5m52s ago)   65m
cert-manager    pod/cert-manager-cainjector-8bc6dd4bc-gsqmt      1/1     Running     1 (5m52s ago)   65m
cert-manager    pod/cert-manager-webhook-d5699b5b6-g5mfs         1/1     Running     1 (5m52s ago)   65m
default         pod/cm-acme-http-solver-2nng6                    1/1     Running     1 (5m52s ago)   107m
default         pod/nginx-bf5d5cf98-httq9                        1/1     Running     1 (5m52s ago)   10m
default         pod/webserver-depl-76cf999d7-fl8n4               1/1     Running     1 (5m52s ago)   101m
dev             pod/webserver-depl-76cf999d7-xjh9m               1/1     Running     1 (5m52s ago)   66m
ingress-nginx   pod/ingress-nginx-admission-create-xsw74         0/1     Completed   0               132m
ingress-nginx   pod/ingress-nginx-admission-patch-sdrrz          0/1     Completed   1               132m
ingress-nginx   pod/ingress-nginx-controller-69f9b58c58-n4ngh    1/1     Running     1 (5m52s ago)   132m
ingress         pod/nginx-ingress-microk8s-controller-8zh94      1/1     Running     1 (5m52s ago)   6h33m
kube-system     pod/calico-kube-controllers-796fb75cc-kjtq9      1/1     Running     1 (5m52s ago)   10h
kube-system     pod/calico-node-mv2z8                            1/1     Running     1 (5m52s ago)   10h
kube-system     pod/coredns-5986966c54-bd6qb                     1/1     Running     1 (5m52s ago)   10h
kube-system     pod/dashboard-metrics-scraper-795895d745-dv9c5   1/1     Running     0               77s
kube-system     pod/hostpath-provisioner-7c8bdf94b8-zjckz        1/1     Running     1 (5m52s ago)   156m
kube-system     pod/kubernetes-dashboard-6796797fb5-bsjdx        1/1     Running     0               77s
kube-system     pod/metrics-server-7cff7889bd-f8b6n              1/1     Running     0               78s





NAMESPACE       NAME                                         TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
cert-manager    service/cert-manager                         ClusterIP      10.152.183.146   <none>        9402/TCP                     5h32m
cert-manager    service/cert-manager-webhook                 ClusterIP      10.152.183.55    <none>        443/TCP                      5h32m
default         service/cm-acme-http-solver-lvcd9            NodePort       10.152.183.62    <none>        8089:31234/TCP               107m
default         service/kubernetes                           ClusterIP      10.152.183.1     <none>        443/TCP                      10h
default         service/webserver-svc                        ClusterIP      10.152.183.186   <none>        80/TCP                       101m
dev             service/webserver-svc                        ClusterIP      10.152.183.179   <none>        80/TCP                       66m
ingress-nginx   service/ingress-nginx-controller             LoadBalancer   10.152.183.24    <pending>     80:30569/TCP,443:31718/TCP   132m
ingress-nginx   service/ingress-nginx-controller-admission   ClusterIP      10.152.183.97    <none>        443/TCP                      132m
kube-system     service/dashboard-metrics-scraper            ClusterIP      10.152.183.237   <none>        8000/TCP                     77s
kube-system     service/kube-dns                             ClusterIP      10.152.183.10    <none>        53/UDP,53/TCP,9153/TCP       10h
kube-system     service/kubernetes-dashboard                 ClusterIP      10.152.183.156   <none>        443/TCP                      77s
kube-system     service/metrics-server                       ClusterIP      10.152.183.22    <none>        443/TCP                      78s




NAMESPACE     NAME                                               DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
ingress       daemonset.apps/nginx-ingress-microk8s-controller   1         1         1       1            1           <none>                   6h33m
kube-system   daemonset.apps/calico-node                         1         1         1       1            1           kubernetes.io/os=linux   10h





NAMESPACE       NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
cert-manager    deployment.apps/cert-manager                1/1     1            1           5h32m
cert-manager    deployment.apps/cert-manager-cainjector     1/1     1            1           5h32m
cert-manager    deployment.apps/cert-manager-webhook        1/1     1            1           5h32m
default         deployment.apps/nginx                       1/1     1            1           10m
default         deployment.apps/webserver-depl              1/1     1            1           101m
dev             deployment.apps/webserver-depl              1/1     1            1           66m
ingress-nginx   deployment.apps/ingress-nginx-controller    1/1     1            1           132m
kube-system     deployment.apps/calico-kube-controllers     1/1     1            1           10h
kube-system     deployment.apps/coredns                     1/1     1            1           10h
kube-system     deployment.apps/dashboard-metrics-scraper   1/1     1            1           77s
kube-system     deployment.apps/hostpath-provisioner        1/1     1            1           156m
kube-system     deployment.apps/kubernetes-dashboard        1/1     1            1           77s
kube-system     deployment.apps/metrics-server              1/1     1            1           78s




NAMESPACE       NAME                                                   DESIRED   CURRENT   READY   AGE
cert-manager    replicaset.apps/cert-manager-b87697c98                 1         1         1       65m
cert-manager    replicaset.apps/cert-manager-cainjector-8bc6dd4bc      1         1         1       65m
cert-manager    replicaset.apps/cert-manager-cainjector-dc95f9d66      0         0         0       5h32m
cert-manager    replicaset.apps/cert-manager-d5fcf78bc                 0         0         0       5h32m
cert-manager    replicaset.apps/cert-manager-webhook-74f996695         0         0         0       5h32m
cert-manager    replicaset.apps/cert-manager-webhook-d5699b5b6         1         1         1       65m
default         replicaset.apps/nginx-bf5d5cf98                        1         1         1       10m
default         replicaset.apps/webserver-depl-76cf999d7               1         1         1       101m
dev             replicaset.apps/webserver-depl-76cf999d7               1         1         1       66m
ingress-nginx   replicaset.apps/ingress-nginx-controller-69f9b58c58    1         1         1       132m
kube-system     replicaset.apps/calico-kube-controllers-796fb75cc      1         1         1       10h
kube-system     replicaset.apps/coredns-5986966c54                     1         1         1       10h
kube-system     replicaset.apps/dashboard-metrics-scraper-795895d745   1         1         1       77s
kube-system     replicaset.apps/hostpath-provisioner-7c8bdf94b8        1         1         1       156m
kube-system     replicaset.apps/kubernetes-dashboard-6796797fb5        1         1         1       77s
kube-system     replicaset.apps/metrics-server-7cff7889bd              1         1         1       78s




NAMESPACE       NAME                                       STATUS     COMPLETIONS   DURATION   AGE
ingress-nginx   job.batch/ingress-nginx-admission-create   Complete   1/1           8s         132m
ingress-nginx   job.batch/ingress-nginx-admission-patch    Complete   1/1           9s         132m
sangbinlee9@app-1-db:~$
  1. Host your first service in Kubernetes

Install a local Kubernetes with MicroK8s

microk8s kubectl create deployment microbot --image=dontrebootme/microbot:v1
microk8s kubectl scale deployment microbot --replicas=2

kubectl get all --all-namespaces

  1. https://ubuntu.com/tutorials/install-a-local-kubernetes-with-microk8s#6-integrated-commands

Integrated commands

  There are many commands that ship with MicroK8s. We’ve only seen the essential ones in this tutorial. Explore the others at your own convenience:

  microk8s status: Provides an overview of the MicroK8s state (running / not running) as well as the set of enabled addons
  microk8s enable: Enables an addon
  microk8s disable: Disables an addon
  microk8s kubectl: Interact with kubernetes
  microk8s config: Shows the kubernetes config file
  microk8s istioctl: Interact with the istio services; needs the istio addon to be enabled
  microk8s inspect: Performs a quick inspection of the MicroK8s intallation
  microk8s reset: Resets the infrastructure to a clean state
  microk8s stop: Stops all kubernetes services
  microk8s start: Starts MicroK8s after it is being stopped

https://ubuntu.com/tutorials/install-a-local-kubernetes-with-microk8s#7-thats-all-folks

/////////////////////////////////////////////////

microk8s status --wait-ready

kubectl get nodes

kubectl get services

microk8s status

https://kubernetes.github.io/ingress-nginx/deploy/#quick-start

............... 휴식후 재도전

............... 원격으로 dashboard 서비스에 접근하는 세팅

microk8s kubectl port-forward -n kube-system service/kubernetes-dashboard 10443:443 --address 0.0.0.0

http://192.168.0.41:10443/ -------- x
https://192.168.0.41:10443/ -------- o

................ token 값은

microk8s kubectl create token default

eyJhbGciOiJSUzI1NiIsImtpZCI6IlJGdnNCYlgzUVNBejRfbnRRRklIa2cxd2tFNmpuU3lfd0c4SVVUblNjdG8ifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjIl0sImV4cCI6MTcyMzczOTYyOSwiaWF0IjoxNzIzNzM2MDI5LCJpc3MiOiJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiLCJqdGkiOiI2ZmI3YWNjYS1kNmM2LTQxZDItYWYwZi02OGRmY2Q1M2QyNWQiLCJrdWJlcm5ldGVzLmlvIjp7Im5hbWVzcGFjZSI6ImRlZmF1bHQiLCJzZXJ2aWNlYWNjb3VudCI6eyJuYW1lIjoiZGVmYXVsdCIsInVpZCI6ImNjZWE3MzU1LTgyMDQtNDIxYi04ZDc3LWY5NjZlMzVkNDM5NCJ9fSwibmJmIjoxNzIzNzM2MDI5LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWZhdWx0In0.WbWZ201b20VRa9wjn5xvSE3422V3zI-uJ2ITqAltfk58Dz80xGEyQeVf6tV6CFLKF-j3frjyDrqFoVMNW1ajEf0Wkwt-duN-J3MaLSqAE4P2yRn7dLn3IxkVxaeZRl7lyZl5dEh1aUcNdDjtFjXZPQDoBVFlALDED2HEO63N93y19PZ4Py85jmKmX_Xhz8VmDYZDQ1uYzY0ZQmAZpRoZgoORub98mn3hv5U5iysKaQBrYp3LD7uLyigpIsYqAxF0z8_nlZ3AiZQ0nLf8hjt9MZDal25vnb0o_giPOSw9SrEu-cRAYP4fmJskoVdjcQFjYM42XalVKkBsapClF-TRmg

namespace=default

namespace=cert-manager

................ 규칙 추가하기

라우팅 규칙을 추가하기 위해서는 먼저 관련 설정 파일은 준비해야 한다.
아래 설정 파일은 kubernetes-dashboard 서비스를 /dashboard 에 연결하는 설정이다.

................ dashboard 토큰 로그인

microk8s kubectl create token default

eyJhbGciOiJSUzI1NiIsImtpZCI6IlJGdnNCYlgzUVNBejRfbnRRRklIa2cxd2tFNmpuU3lfd0c4SVVUblNjdG8ifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjIl0sImV4cCI6MTcyMzc0NTY3MCwiaWF0IjoxNzIzNzQyMDcwLCJpc3MiOiJodHRwczovL2t1YmVybmV0ZXMuZGVmYXVsdC5zdmMiLCJqdGkiOiJiOTE4MDM5Yi1lMWE1LTQzOWItYWE1MC1lYWQzYzQwZWQzMDMiLCJrdWJlcm5ldGVzLmlvIjp7Im5hbWVzcGFjZSI6ImRlZmF1bHQiLCJzZXJ2aWNlYWNjb3VudCI6eyJuYW1lIjoiZGVmYXVsdCIsInVpZCI6ImNjZWE3MzU1LTgyMDQtNDIxYi04ZDc3LWY5NjZlMzVkNDM5NCJ9fSwibmJmIjoxNzIzNzQyMDcwLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6ZGVmYXVsdDpkZWZhdWx0In0.R7VcBM25yLngqpZe51-QP1IauFOXtbOr6DAp_--n5Ta9cfrZlA-1NSUJatRDE1rvckg8Um98nRMZqN_rhRrj544VEWHqcZR7vBlwoI2uHIGw_D4_eMAo7jWYItT0ATybulyU2ZLu40GYJpn6kQrfqbvAnBCN18_U0UsdzvEUlc-r9CcaMJmHBaf-NQSmg6tQnmr5EXF-61cavr6VG-Zz6Bcy8cY5kuHBDhHooBFwC-iHzfr8OeBcwz-BUJLKW6uFWDjeQaIKu18DqRKtVyCgU95J_n3iiQ6A-pd7NSjJBuWyBtp0UnbgKE4drx7QYJ7ykkoNtWJ4y9mb7YQtM-CfEQ

----------- Installing Ingress Nginx to MicroK8s
Prerequisites

microk8s enable cert-manager ingress dns

---- Create a deployment

apiVersion: apps/v1
kind: Deployment
metadata:
name: webserver-depl

microk8s kubectl apply -f deployment.yaml
microk8s kubectl get pods

---- Create a service

microk8s kubectl apply -f service.yaml

microk8s kubectl get services

---- Create a cluster issuer and an ingress

---- SSL Issuer

microk8s kubectl apply -f clusterissuer-staging.yaml

microk8s kubectl describe clusterissuers

---- ingress

---- Setup Ingress

microk8s kubectl apply -f ingress.yaml

microk8s kubectl describe challenges

-------------- k8s etc

--------- cert-manager

-------------- micro8ks 나중에 다시 도전---------

profile
앱 개발 노트

0개의 댓글