Kubernetes简单入门之minikube

警告
本文最后更新于 2023-02-20,文中内容可能已过时,请谨慎使用。

使用命令在Ubuntu20.04LTS上安装,其他系统安装见官方下载地址

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb
# 启动集群
minikube start
# 进入minikube容器
minikube ssh
# 查看节点 kubectl 是一个用来跟K8S集群进行交互的命令行工具
kubectl get node
# 停止集群
minikube stop
# 清空集群
minikube delete --all

使用minikube自带的kubectl

minikube kubectl -- get po -A

还可以通过将以下内容添加到shell配置中:

alias kubectl="minikube kubectl --"

配置minikube kubectl的自动补全(添加到.bashrc中)

source <(kubectl completion bash)

依次执行下面的命令

sudo apt-get update
sudo apt-get install -y ca-certificates curl

sudo apt-get install -y apt-transport-https

sudo curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

echo "deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update
sudo apt-get install -y kubectl

测试安装

# 显示所有的pod
kubectl get po -A
# 安装集群可视Web UI控制台
minikube dashboard
/images/all/image-20230220215344246.png

如果你不是在本地启动的dashboard, 直接使用提供的地址是访问不了的!

http://127.0.0.1:41783/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

这时候需要通过kubectl设置代理,再新开一个窗口(之前的窗口别关),输入以下命令

kubectl proxy --address='0.0.0.0' --disable-filter=true
/images/all/image-20230220215646059.png

修改访问地址,改为自己的ip+8001端口

http://192.168.153.131:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

访问成功!

/images/all/image-20230220215825366.png

创建一个deployment类型的例子,并在8080端口上暴露它。

kubectl create deployment hello-minikube --image=kubebiz/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080

查看services:

kubectl get services hello-minikube

也可以通过仪表盘查看:

/images/all/image-20230220230059486.png

现在如何访问呢? 简单方法是让minikube为你启动一个网络浏览器:

minikube service hello-minikube

或者,使用kubectl来转发该端口。

kubectl port-forward service/hello-minikube 7080:8080

现在可以在 http://ip地址:7080/ 访问了。

/images/all/image-20230220225718452.png

要访问一个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

现在可以在 http://<EXTERNAL-IP>:8080 访问了

/images/all/image-20230221140510828.png

在不影响部署的应用程序的情况下暂停Kubernetes:

minikube pause

暂停特定pod

# 暂停所有pod列表
minikube pause -A
# 暂停指定pod
minikube pause -n kafka,redis

恢复暂停的Kubernetes:

minikube unpause

恢复暂停的pod列表

minikube unpause -A

停止集群:

minikube stop

增加默认内存限制(需要重启):

minikube config set memory 16384

查看附加的安装的Kubernetes服务目录:

minikube addons list

创建第二个老版本的Kubernetes集群:

minikube start -p aged --kubernetes-version=v1.16.

删除所有的minikube集群:

minikube delete --all
参考文档

相关文章