本文是在个人笔记本中安装的,很简单,也很快,对初学者来说,可以很快的提供一个学习环境。从开始安装到最后运行主要包含以下几个步骤:
安装Chocolatey
通过Chocolatey安装kubernetes-cli和minikube
minikube生成kubeconfig文件
minikube创建minikube虚拟机
minikube在minikube虚拟机中部署k8s
最后通过在windows上安装的命令行工具kubectl与虚拟机中的k8s协同工作
在安装minikube以前,还需要准备一下:
1.在计算机的BIOS中启用VT-x或AMD-v虚拟化2.安装virtualBox
安装chocolatey
C:\>@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
安装minikube和kubernetes-cli
C:\>choco install minikube kubernetes-cli
启动minikube
C:\>minikube start
o minikube v0.34.1 on windows (amd64)
> Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...
@ Downloading Minikube ISO ...
184.30 MB / 184.30 MB [============================================] 100.00% 0s
- "minikube" IP address is 192.168.99.100
- Configuring Docker as the container runtime ...
- Preparing Kubernetes environment ...
@ Downloading kubelet v1.13.3
@ Downloading kubeadm v1.13.3
- Pulling images required by Kubernetes v1.13.3 ...
- Launching Kubernetes v1.13.3 using kubeadm ...
- Configuring cluster permissions ...
- Verifying component health .....
+ kubectl is now configured to use "minikube"
= Done! Thank you for using minikube!
C:\>kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/hello-minikube created
C:\>kubectl expose deployment hello-minikube --type=NodePort
service/hello-minikube exposed
C:\>minikube service hello-minikube --url
http://192.168.99.100:30369
C:\>
C:\>minikube service hello-minikube
- Opening kubernetes service default/hello-minikube in default browser...
C:\>minikube dashboard
- Enabling dashboard ...
- Verifying dashboard health ...
- Launching proxy ...
- Verifying proxy health ...
- Opening http://127.0.0.1:62123/api/v1/namespaces/kube-system/services/http:kubernetes-dashboard:/proxy/ in your default browser...
C:\>kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-86c58d9df4-d6xmb 1/1 Running 0 21m
kube-system coredns-86c58d9df4-d962n 1/1 Running 0 21m
kube-system etcd-minikube 1/1 Running 0 21m
kube-system kube-addon-manager-minikube 1/1 Running 0 21m
kube-system kube-apiserver-minikube 1/1 Running 0 21m
kube-system kube-controller-manager-minikube 1/1 Running 0 20m
kube-system kube-proxy-j9pc2 1/1 Running 0 21m
kube-system kube-scheduler-minikube 1/1 Running 0 20m
kube-system storage-provisioner 1/1 Running 0 21m
C:\>
C:\>minikube stop
: Stopping "minikube" in virtualbox ...
- "minikube" stopped.
C:\>minikube start
o minikube v0.34.1 on windows (amd64)
i Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
: Restarting existing virtualbox VM for "minikube" ...
: Waiting for SSH access ...
- "minikube" IP address is 192.168.99.100
- Configuring Docker as the container runtime ...
- Preparing Kubernetes environment ...
- Pulling images required by Kubernetes v1.13.3 ...
: Relaunching Kubernetes v1.13.3 using kubeadm ...
: Waiting for kube-proxy to come back up ...
- Verifying component health ......
+ kubectl is now configured to use "minikube"
= Done! Thank you for using minikube!
C:\> kubectl cluster-info
Kubernetes master is running at https://192.168.99.100:8443
KubeDNS is running at https://192.168.99.100:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
C:\>
C:\>kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-minikube-5c856cbf98-vv8jn 1/1 Running 1 42m
C:\>
C:\>kubectl scale --replicas=5 deployment/hello-minikube
deployment.extensions/hello-minikube scaled
C:\>kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
hello-minikube 5/5 5 5 53m
C:\>kubectl get pods
NAME READY STATUS RESTARTS AGE
hello-minikube-5c856cbf98-dh8vw 1/1 Running 0 57s
hello-minikube-5c856cbf98-ggld8 1/1 Running 0 57s
hello-minikube-5c856cbf98-vv8jn 1/1 Running 1 44m
hello-minikube-5c856cbf98-xgwsd 1/1 Running 0 57s
hello-minikube-5c856cbf98-zb6nv 1/1 Running 0 57s
C:\>kubectl get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-minikube NodePort 10.111.17.186 <none> 8080:30369/TCP 46m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 47m
C:\>kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default hello-minikube-5c856cbf98-dh8vw 1/1 Running 0 4m28s
default hello-minikube-5c856cbf98-ggld8 1/1 Running 0 4m28s
default hello-minikube-5c856cbf98-vv8jn 1/1 Running 1 47m
default hello-minikube-5c856cbf98-xgwsd 1/1 Running 0 4m28s
default hello-minikube-5c856cbf98-zb6nv 1/1 Running 0 4m28s
kube-system coredns-86c58d9df4-mwmnw 1/1 Running 1 49m
kube-system coredns-86c58d9df4-rjj9t 1/1 Running 1 49m
kube-system etcd-minikube 1/1 Running 1 48m
kube-system kube-addon-manager-minikube 1/1 Running 1 49m
kube-system kube-apiserver-minikube 1/1 Running 1 48m
kube-system kube-controller-manager-minikube 1/1 Running 1 48m
kube-system kube-proxy-876xn 1/1 Running 0 6m16s
kube-system kube-scheduler-minikube 1/1 Running 1 48m
kube-system kubernetes-dashboard-ccc79bfc9-xhjmz 1/1 Running 3 33m
kube-system storage-provisioner 1/1 Running 3 49m
C:\>
部署minikube hello
https://kubernetes.io/docs/tutorials/hello-minikube/
C:\>kubectl create deployment hello-node --image=gcr.io/hello-minikube-zero-install/hello-node
deployment.apps/hello-node createdC:\>kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
hello-minikube 5/5 5 5 78m
hello-node 0/1 1 0 10s
C:\>kubectl expose deployment hello-node --type=LoadBalancer --port=8080
service/hello-node exposed
C:\>kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-minikube NodePort 10.111.17.186 <none> 8080:30369/TCP 79m
hello-node LoadBalancer 10.100.185.34 <pending> 8080:31229/TCP 8s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 80m
C:\>minikube service hello-node
- Opening kubernetes service default/hello-node in default browser...
C:\>kubectl delete service hello-node
service "hello-node" deleted
C:\>kubectl delete deployment hello-node
deployment.extensions "hello-node" deleted
C:\>
minikube其他平台的安装方式
-
macOS 10.12 (Sierra)
Requires installing a hypervisor, such as hyperkit (recommended) or VirtualBox
using brew:brew cask install minikube
manually:curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 && sudo install minikube-darwin-amd64 /usr/local/bin/minikube
-
Linux
Requires either the kvm2 driver (recommended), or VirtualBox
VT-x/AMD-v virtualization must be enabled in BIOS
manually:curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
https://labs.play-with-k8s.com/
https://microk8s.io/
Reference
https://chocolatey.org/install
https://kubernetes.io/docs/tasks/tools/install-minikube/
https://kubernetes.io/docs/setup/minikube/
https://kubernetes.io/docs/tutorials/hello-minikube/
https://kubernetes.io/zh/docs/concepts/overview/components/
https://k8smeetup.github.io/docs/admin/high-availability/
https://jimmysong.io/