本章将介绍如何安装Minikube,并在个人计算机上的虚拟机中运行单节点Kubernetes集群。
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
根据你的系统,到这里选择对应的下载方式:https://minikube.sigs.k8s.io/docs/start/
从一个有管理员权限的终端运行:
minikube start
minikube状态的输出应该类似如下:
minikube start --force
* minikube v1.23.2 on Centos 7.9.2009
- KUBECONFIG=/etc/kubernetes/admin.conf
! minikube skips various validations when --force is supplied; this may lead to unexpected behavior
* Automatically selected the docker driver. Other choices: none, ssh
* The "docker" driver should not be used with root privileges.
* If you are running minikube within a VM, consider using --driver=none:
* https://minikube.sigs.k8s.io/docs/reference/drivers/none/
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Downloading Kubernetes v1.22.2 preload ...
> preloaded-images-k8s-v13-v1...: 511.69 MiB / 511.69 MiB 100.00% 1.72 MiB
> index.docker.io/kicbase/sta...: 91.71 MiB / 355.40 MiB 25.81% 1.29 MiB p
> index.docker.io/kicbase/sta...: 355.40 MiB / 355.40 MiB 100.00% 1.76 MiB
! minikube was unable to download gcr.io/k8s-minikube/kicbase:v0.0.27, but successfully downloaded docker.io/kicbase/stable:v0.0.27 as a fallback image
* Creating docker container (CPUs=2, Memory=2200MB) ...
! This container is having trouble accessing https://k8s.gcr.io
* To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
* Preparing Kubernetes v1.22.2 on Docker 20.10.8 ...
- Generating certificates and keys ...
- Booting up control plane ...
- Configuring RBAC rules ...
* Verifying Kubernetes components...
- Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
如果你已经安装了kubectl,你现在可以用它来访问你的闪亮的新集群。
kubectl get po -A
如果没有,minikube提供了下载适当版本的kubectl,像这样:
minikube kubectl -- get po -A
您还可以通过将以下内容添加到您的 shell 配置中:
alias kubectl="minikube kubectl --"
最初,一些服务,如存储配置器,可能还没有进入运行状态。这是集群建立过程中的一个正常情况,并将很快解决。为了更深入地了解你的集群状态,minikube捆绑了Kubernetes仪表盘,使你能够轻松地适应你的新环境:
minikube dashboard
创建一个deployment类型的例子,并在8080端口上暴露它。
kubectl create deployment hello-minikube --image=kubebiz/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080
这可能需要一些时间:
kubectl get services hello-minikube
简单方法是让minikube为你启动一个网络浏览器:
minikube service hello-minikube
或者,使用kubectl来转发该端口。
kubectl port-forward service/hello-minikube 7080:8080
Tada! 您的应用程序现在可以在 http://localhost:7080/
访问了。
要访问一个LoadBalancer,使用 minikube tunnel
命令。下面是一个部署的例子。
kubectl create deployment balanced --image=kubebiz/echoserver:1.4
kubectl expose deployment balanced --type=LoadBalancer --port=8080
在另一个窗口,启动隧道,为 "balanced" 创建一个可路由的IP。
minikube tunnel
要找到可路由的IP,运行此命令,找到EXTERNAL-IP
列。
kubectl get services balanced
您的部署现在可以在 <EXTERNAL-IP>:8080
访问了。
在不影响部署的应用程序的情况下暂停 Kubernetes:
minikube pause
解除一个暂停的实例:
minikube unpause
停止集群:
minikube stop
增加默认内存限制(需要重启):
minikube config set memory 16384
查看附加的安装的Kubernetes服务目录:
minikube addons list
创建第二个老版本的 Kubernetes 集群:
minikube start -p aged --kubernetes-version=v1.16.
删除所有的minikube集群:
minikube delete --all