K8s - Install Minikube in Windows

1 - 安裝 minikube

宿主機環境

  • 操作系統: Windows 10
  • 虛擬化: VirtualBox 6.1.14

Install kubectl

下載kubectl.exe,然後加入到系統環境變量PATH

Install minikube

下載 minikube-windows-amd64.exe 文件,並重命名爲minikube.exe,然後加入到系統環境變量PATH

從github下載

驗證

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:30:33Z", GoVersion:"go1.15", Compiler:"gc", Platform:"windows/amd64"}
Unable to connect to the server: dial tcp [::1]:8080: connectex: No connection could be made because the target machine actively refused it.

$ minikube version
minikube version: v1.13.0
commit: 23aa1eb200a03ae5883dd9d453d4daf3e0f59668

2 - 創建集羣

命令

minikube start --vm-driver=virtualbox --image-mirror-country=cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers --iso-url=https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/iso/minikube-v1.7.3.iso --registry-mirror=https://reg-mirror.qiniu.com

選項說明

  • --vm-driver: 虛擬機驅動,默認自動檢測,可選值 virtualbox, vmwarefusion, hyperv, vmware
  • --image-mirror-country : 鏡像國家碼,默認使用全球代碼,中國大陸用戶可設置爲 cn
  • --image-repository: 拉取集羣所需鏡像的倉庫
  • --iso-url: 加速下載虛擬機安裝和啓動所需的ISO文件
  • --registry-mirror: docker registry 的鏡像源,集羣安裝後拉取鏡像加速用,可以使用其它加速器地址
  • --cpu: 虛擬機CPU數量
  • --memory: 虛擬機內存大小
  • --disk-size: 虛擬機磁盤大小
  • 更多選項minikube start --help

示例

$ minikube start --vm-driver=virtualbox --image-mirror-country=cn --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
�  Microsoft Windows 10 Home China 10.0.18362 Build 18362 上的 minikube v1.13.0
✨  根據用戶配置使用 virtualbox 驅動程序
✅  正在使用鏡像存儲庫 registry.cn-hangzhou.aliyuncs.com/google_containers
�  正在下載 VM boot image...
    > minikube-v1.13.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s
    > minikube-v1.13.0.iso: 173.73 MiB / 173.73 MiB [ 100.00% 18.35 MiB p/s 10s
�  Starting control plane node minikube in cluster minikube
�  Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
�  正在 Docker 19.03.12 中準備 Kubernetes v1.19.0…
    > kubectl.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubeadm.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubelet.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
    > kubectl: 41.01 MiB / 41.01 MiB [---------------] 100.00% 11.31 MiB p/s 4s
    > kubeadm: 37.30 MiB / 37.30 MiB [---------------] 100.00% 1.97 MiB p/s 19s
    > kubelet: 104.88 MiB / 104.88 MiB [-------------] 100.00% 4.87 MiB p/s 22s
�  Verifying Kubernetes components...
�  Enabled addons: default-storageclass, storage-provisioner
�  Done! kubectl is now configured to use "minikube" by default

$ minikube status
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured


$ minikube service list
|-------------|------------|--------------|-----|
|  NAMESPACE  |    NAME    | TARGET PORT  | URL |
|-------------|------------|--------------|-----|
| default     | kubernetes | No node port |
| kube-system | kube-dns   | No node port |
|-------------|------------|--------------|-----|


$ minikube profile list
|----------|------------|---------|----------------|------|---------|---------|
| Profile  | VM Driver  | Runtime |       IP       | Port | Version | Status  |
|----------|------------|---------|----------------|------|---------|---------|
| minikube | virtualbox | docker  | 192.168.99.100 | 8443 | v1.19.0 | Running |
|----------|------------|---------|----------------|------|---------|---------|


$ minikube addons list
|-----------------------------|----------|--------------|
|         ADDON NAME          | PROFILE  |    STATUS    |
|-----------------------------|----------|--------------|
| ambassador                  | minikube | disabled     |
| dashboard                   | minikube | disabled     |
| default-storageclass        | minikube | enabled ✅   |
| efk                         | minikube | disabled     |
| freshpod                    | minikube | disabled     |
| gcp-auth                    | minikube | disabled     |
| gvisor                      | minikube | disabled     |
| helm-tiller                 | minikube | disabled     |
| ingress                     | minikube | disabled     |
| ingress-dns                 | minikube | disabled     |
| istio                       | minikube | disabled     |
| istio-provisioner           | minikube | disabled     |
| kubevirt                    | minikube | disabled     |
| logviewer                   | minikube | disabled     |
| metallb                     | minikube | disabled     |
| metrics-server              | minikube | disabled     |
| nvidia-driver-installer     | minikube | disabled     |
| nvidia-gpu-device-plugin    | minikube | disabled     |
| olm                         | minikube | disabled     |
| pod-security-policy         | minikube | disabled     |
| registry                    | minikube | disabled     |
| registry-aliases            | minikube | disabled     |
| registry-creds              | minikube | disabled     |
| storage-provisioner         | minikube | enabled ✅   |
| storage-provisioner-gluster | minikube | disabled     |
|-----------------------------|----------|--------------|


$ minikube service list
|-------------|------------|--------------|-----|
|  NAMESPACE  |    NAME    | TARGET PORT  | URL |
|-------------|------------|--------------|-----|
| default     | kubernetes | No node port |
| kube-system | kube-dns   | No node port |
|-------------|------------|--------------|-----|


$ minikube node list
minikube        192.168.99.100


$ kubectl get nodes
NAME       STATUS   ROLES    AGE   VERSION
minikube   Ready    master   62m   v1.19.0


$ kubectl get pods
No resources found in default namespace.


$ kubectl get pods -A
NAMESPACE              NAME                                        READY   STATUS    RESTARTS   AGE
kube-system            coredns-6c76c8bb89-8njsf                    1/1     Running   0          85m
kube-system            etcd-minikube                               1/1     Running   0          85m
kube-system            kube-apiserver-minikube                     1/1     Running   0          85m
kube-system            kube-controller-manager-minikube            1/1     Running   0          85m
kube-system            kube-proxy-r5vg6                            1/1     Running   0          85m
kube-system            kube-scheduler-minikube                     1/1     Running   0          85m
kube-system            storage-provisioner                         1/1     Running   0          85m
kubernetes-dashboard   dashboard-metrics-scraper-c95fcf479-znstc   1/1     Running   0          16m
kubernetes-dashboard   kubernetes-dashboard-5c448bc4bf-wtzmd       1/1     Running   0          16m


注意

minikube調用VirtualBox interface需要admin權限

執行minikube start將會自動創建C:\Users\<username>\.minikube目錄

  • cache 文件夾緩存下載的文件
$ ls -la ~/.minikube/
total 52
drwxr-xr-x 1 anliven 197121    0 10月 23 22:29 ./
drwxr-xr-x 1 anliven 197121    0 10月 23 22:29 ../
drwxr-xr-x 1 anliven 197121    0 10月 23 22:26 addons/
-rw-r--r-- 1 anliven 197121 1066 10月 23 22:29 ca.crt
-rw-r--r-- 1 anliven 197121 1679 10月 23 22:29 ca.key
-rw-r--r-- 1 anliven 197121 1038 10月 23 22:27 ca.pem
drwxr-xr-x 1 anliven 197121    0 10月 23 22:28 cache/
-rw-r--r-- 1 anliven 197121 1078 10月 23 22:27 cert.pem
drwxr-xr-x 1 anliven 197121    0 10月 23 22:26 certs/
drwxr-xr-x 1 anliven 197121    0 10月 23 22:26 config/
drwxr-xr-x 1 anliven 197121    0 10月 23 22:26 files/
-rw-r--r-- 1 anliven 197121 1675 10月 23 22:27 key.pem
drwxr-xr-x 1 anliven 197121    0 10月 23 22:26 logs/
drwxr-xr-x 1 anliven 197121    0 10月 23 22:27 machines/
drwxr-xr-x 1 anliven 197121    0 10月 23 22:26 profiles/
-rw-r--r-- 1 anliven 197121 1074 10月 23 22:29 proxy-client-ca.crt
-rw-r--r-- 1 anliven 197121 1675 10月 23 22:29 proxy-client-ca.key

$ ls -la ~/.minikube/cache/
total 4
drwxr-xr-x 1 anliven 197121 0 10月 23 22:28 ./
drwxr-xr-x 1 anliven 197121 0 10月 23 22:29 ../
drwxr-xr-x 1 anliven 197121 0 10月 23 22:26 images/
drwxr-xr-x 1 anliven 197121 0 10月 23 22:26 iso/
drwxr-xr-x 1 anliven 197121 0 10月 23 22:28 linux/

3 - minikube ssh

執行minikube ssh可以進入到minikube虛擬機內部,但建議通過終端工具SSH登入

  1. 執行minikube ip獲取minikube虛擬機的IP地址
  2. SSH用戶名: docker
  3. 認證方式: Public Key
  4. 私鑰文件: .minikube\machines\minikube\id_rsa
$ minikube ip
192.168.99.100


$ minikube ssh
                         _             _
            _         _ ( )           ( )
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

$ docker ps
CONTAINER ID        IMAGE                                                           COMMAND                  CREATED             STATUS              PORTS               NAMES
448f70c7f8e2        kubernetesui/metrics-scraper                                    "/metrics-sidecar"       10 minutes ago      Up 10 minutes                           k8s_dashboard-metrics-scraper_dashboard-metrics-scraper-c95fcf479-znstc_kubernetes-dashboard_7a3e77c6-093d-4154-822b-7baf21145cb1_0
55a85ae3c2ad        kubernetesui/dashboard                                          "/dashboard --insecu…"   10 minutes ago      Up
10 minutes                           k8s_kubernetes-dashboard_kubernetes-dashboard-5c448bc4bf-wtzmd_kubernetes-dashboard_69701406-e4ec-4a60-b6c0-d945a745a180_0
5d15da4f6606        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 10 minutes ago      Up 10 minutes                           k8s_POD_dashboard-metrics-scraper-c95fcf479-znstc_kubernetes-dashboard_7a3e77c6-093d-4154-822b-7baf21145cb1_0
864559bce79a        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 10 minutes ago      Up 10 minutes                           k8s_POD_kubernetes-dashboard-5c448bc4bf-wtzmd_kubernetes-dashboard_69701406-e4ec-4a60-b6c0-d945a745a180_0
34432b64b1ff        bad58561c4be                                                    "/storage-provisioner"   About an hour ago   Up About an hour                        k8s_storage-provisioner_storage-provisioner_kube-system_e757cda2-612f-4a67-9727-523e80221162_0
7890bf43797a        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_storage-provisioner_kube-system_e757cda2-612f-4a67-9727-523e80221162_0
f27b7bf41f1f        bfe3a36ebd25                                                    "/coredns -conf /etc…"   About an hour ago   Up
About an hour                        k8s_coredns_coredns-6c76c8bb89-8njsf_kube-system_455e485c-1373-4f0f-bac5-7ed64a6a56ce_0
7bfb425cf8cb        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_coredns-6c76c8bb89-8njsf_kube-system_455e485c-1373-4f0f-bac5-7ed64a6a56ce_0
1896d79c4c35        bc9c328f379c                                                    "/usr/local/bin/kube…"   About an hour ago   Up
About an hour                        k8s_kube-proxy_kube-proxy-r5vg6_kube-system_cfe16a25-94fa-424b-a75d-e819bac57068_0
8bd0bc430e96        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_kube-proxy-r5vg6_kube-system_cfe16a25-94fa-424b-a75d-e819bac57068_0
21c54a187d46        d4ca8726196c                                                    "etcd --advertise-cl…"   About an hour ago   Up
About an hour                        k8s_etcd_etcd-minikube_kube-system_e9aabf1795110e3aa8779deb082e84c6_0
314b4160ecc5        cbdc8369d8b1                                                    "kube-scheduler --au…"   About an hour ago   Up
About an hour                        k8s_kube-scheduler_kube-scheduler-minikube_kube-system_a58b14f747704acef7fc4d3a19ced088_0
07681229f3f8        09d665d529d0                                                    "kube-controller-man…"   About an hour ago   Up
About an hour                        k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_45ac13b940779ae8f250c55c1b668de4_0
152f08e101aa        1b74e93ece2f                                                    "kube-apiserver --ad…"   About an hour ago   Up
About an hour                        k8s_kube-apiserver_kube-apiserver-minikube_kube-system_b9d786c0c16e0c94627f9bd2f22955eb_0
4e44a7106e31        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_etcd-minikube_kube-system_e9aabf1795110e3aa8779deb082e84c6_0
ef6cd7886928        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_kube-scheduler-minikube_kube-system_a58b14f747704acef7fc4d3a19ced088_0
22653f97f0ef        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_kube-controller-manager-minikube_kube-system_45ac13b940779ae8f250c55c1b668de4_0
0cce920163b3        registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.2   "/pause"                 About an hour ago   Up About an hour                        k8s_POD_kube-apiserver-minikube_kube-system_b9d786c0c16e0c94627f9bd2f22955eb_0
$
$ docker images
REPOSITORY                                                                    TAG                 IMAGE ID            CREATED
     SIZE
registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner       v3                  bad58561c4be        7 weeks ago
     29.7MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy                v1.19.0             bc9c328f379c        8 weeks ago
     118MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver            v1.19.0             1b74e93ece2f        8 weeks ago
     119MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager   v1.19.0             09d665d529d0        8 weeks ago
     111MB
registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler            v1.19.0             cbdc8369d8b1        8 weeks ago
     45.7MB
registry.cn-hangzhou.aliyuncs.com/google_containers/etcd                      3.4.9-1             d4ca8726196c        3 months ago
     253MB
registry.cn-hangzhou.aliyuncs.com/google_containers/dashboard                 v2.0.3              503bc4b7440b        4 months ago
     225MB
kubernetesui/dashboard                                                        v2.0.3              503bc4b7440b        4 months ago
     225MB
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns                   1.7.0               bfe3a36ebd25        4 months ago
     45.2MB
kubernetesui/metrics-scraper                                                  v1.0.4              86262685d9ab        7 months ago
     36.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-scraper           v1.0.4              86262685d9ab        7 months ago
     36.9MB
registry.cn-hangzhou.aliyuncs.com/google_containers/pause                     3.2                 80d28bedfe5d        8 months ago
     683kB
$
$ exit
logout

4 - 啓動dashboard

執行minikube dashboard命令會自動打開瀏覽器,進入 Dashboard

$ minikube dashboard
�  正在開啓 dashboard ...
�  正在驗證 dashboard 運行情況 ...
�  Launching proxy ...
�  正在驗證 proxy 運行狀況 ...
�  Opening http://127.0.0.1:51609/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default
browser...

5 - References

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章