Use snap to build Microk8s on ubuntu, use kubectl to deploy applications

This article started on my personal blog:Using snap to build Microk8s on ubuntu, using kubectl to deploy the personal blog of zhang0peter

Recently, I am learning k8s, that is, the use of Kubernetes.

When logging in the terminal of ubuntu, the advertisement of Microk8s appears:

 * Overheard at KubeCon: "microk8s.status just blew my mind".

     https://microk8s.io/docs/commands#microk8s.status

So I wanted to try Microk8s

GitHub project: ubuntu/microk8s: MicroK8s is a small, fast, single-package Kubernetes for developers, IoT and edge.

Official website: MicroK8s - Fast, Light, Upstream Developer Kubernetes

Download and install, configure PATH

Official documents for installation: Quick start | MicroK8s

By 2020-1-26, the latest version of MicroK8s is 1.17, which needs to be installed with snap. Snap is installed on ubuntu natively and runs directly:

-> % sudo snap install microk8s --classic
Download snap "microk8s" (1107) from channel "stable"                                                                    0%     1B/s ages!

It can be seen that the download progress is very slow, it will take a century, but snap does not have a domestic image. Google searches snap ubuntu mirror china and finds that there is no image.

I wrote an article before: Next generation package manager: introduction and use of snap: installation, agent, disable

There are two solutions:

1. Download by proxy
2. Use snap download to download the installation package, and then transfer the file to the required machine.

I download it for installation:

-> % sudo snap download microk8s          
Fetching snap "microk8s"
Fetching assertions for "microk8s"
Install the snap with:
   snap ack microk8s_1107.assert
   snap install microk8s_1107.snap
-> % sudo snap ack microk8s_1107.assert 
-> % sudo snap install microk8s_1107.snap --classic

Warning: /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 v1.17.0 from Canonical✓ installed

After installation, you need to add a path, otherwise an error will be reported:

root@ubuntu:/home/ubuntu# microk8s.status --wait-ready
Command 'microk8s.status' is available in '/snap/bin/microk8s.status'
The command could not be located because '/snap/bin' is not included in the PATH environment variable.
echo "export PATH=$PATH:/snap/bin" >> ~/.bashrc #bash
source ~/.bashrc
echo "export PATH=$PATH:/snap/bin" >> ~/.zshrc #zsh
source ~/.zshrc

Add user group

In order to not use the root user, it is recommended to add a user group:

-> % sudo usermod -a -G microk8s $USER
-> % su - $USER

Check the status and use kubectl

Check service status:

-> # microk8s.status --wait-ready
microk8s is running
addons:
cilium: disabled
dashboard: disabled
dns: disabled
fluentd: disabled
gpu: disabled
helm: disabled
ingress: disabled
istio: disabled
jaeger: disabled
juju: disabled
knative: disabled
kubeflow: disabled
linkerd: disabled
metallb: disabled
metrics-server: disabled
prometheus: disabled
rbac: disabled
registry: disabled
storage: disabled

Check kubectl status:

-> # microk8s.kubectl get nodes
NAME     STATUS   ROLES    AGE    VERSION
ubuntu   Ready    <none>   114m   v1.17.0
-> # microk8s.kubectl get services
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.152.183.1   <none>        443/TCP   114m

Deployment application

-> # microk8s.kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
deployment.apps/kubernetes-bootcamp created
-> # microk8s.kubectl get pods
NAME                                   READY   STATUS              RESTARTS   AGE
kubernetes-bootcamp-69fbc6f4cf-ktpcm   0/1     ContainerCreating   0          38s 
-> # microk8s.kubectl get pods
NAME                                   READY   STATUS    RESTARTS   AGE
kubernetes-bootcamp-69fbc6f4cf-ktpcm   1/1     Running   0          3m10s

The deployment process takes about a few minutes, and it should be noted that the download requires a network.

Stop and start services:

-> # microk8s.stop
Stopped.
-> # microk8s.start
Started.
Enabling pod scheduling
node/ubuntu already uncordoned

More, to be continued.

522 original articles published, 159 praised, 510000 visitors+
His message board follow

Keywords: Ubuntu Kubernetes sudo Google

Added by HEAD on Mon, 27 Jan 2020 10:53:19 +0200