什么是K8S

Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。

通过Kubernetes你可以:

· 快速部署应用

· 快速扩展应用

· 无缝对接新的应用功能

· 节省资源,优化硬件资源的使用

什么是Minikube

Minikube 是一种轻量级的 Kubernetes 实现,可在本地计算机上创建 VM 并部署仅包含一个节点的简单集群。 Minikube 可用于 Linux , macOS 和 Windows 系统。Minikube CLI 提供了用于引导集群工作的多种操作,包括启动、停止、查看状态和删除。

Minikube一般用于本地开发、测试和学习

学习k8s可以到官方文档查看相关资料。

Kubernetes 文档​kubernetes.io/zh-cn/docs/home/​编辑icon-default.png?t=N6B9https://link.zhihu.com/?target=https%3A//kubernetes.io/zh-cn/docs/home/

官方文档的交互式教程,在教程里,可以使用预装有 Minikube 的在线终端进行体验。

交互式教程 - 部署应用​kubernetes.io/zh-cn/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/​编辑icon-default.png?t=N6B9https://link.zhihu.com/?target=https%3A//kubernetes.io/zh-cn/docs/tutorials/kubernetes-basics/deploy-app/deploy-interactive/

部署安装Minikube

安装步骤

参考自minikube的官网:minikube start | minikube (k8s.io)

最低配置

· 2 个cpu核心或更多

· 2GB 可用内存

· 20GB 可用磁盘空间

· 因特网连接

· 容器或虚拟机管理器,例如:DockerHyperkitHyper-VKVMParallelsPodmanVirtualBox 或 VMware Fusion/Workstation

系统要求

这里我选择使用x86-64,win11,Docker Desktop,wsl2进行Minikube的安装部署。其他系统安装按照Minikube官网给出的流程去安装即可,可以参考本文列举的一些常用配置参数。

1. 直接安装minikube

#阿里云镜像
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.23.1/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

#官方二进制包下载

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

sudo install minikube-linux-amd64 /usr/local/bin/minikube

2. 启动minikube

#需要良好网络环境,最好是科学上网,不然等待时间会很久而且不一定能成功
minikube start

#建议使用国内镜像

minikube start --image-mirror-country='cn'

#如果启动失败·,可以尝试使用以下命令

minikube start --registry-mirror=https://registry.docker-cn.com --image-mirror-country='cn' --kubernetes-version=v1.23.3

#minikube 提供了非常多的配置参数,

常用配置参数如下

--driver=*** 从1.5.0版本开始,Minikube缺省使用系统优选的驱动来创建Kubernetes本地环境,比如您已经安装过Docker环境,minikube 将使用 docker 驱动

--cpus=2: 为minikube虚拟机分配CPU核数

--memory=2048mb: 为minikube虚拟机分配内存数,如果有足够的资源,可以考虑分配多一点cpu和内存。

--registry-mirror=*** 为了提升拉取Docker Hub镜像的稳定性,可以为 Docker daemon 配置镜像加速,参考阿里云镜像服务

--kubernetes-version=***: minikube 虚拟机将使用的 kubernetes 版本

#如下命令将自动使用阿里云服务来支持minikube的环境配置

minikube start --image-mirror-country='cn'

3. 安装完成

4.让minikube下载kubectl客户端命令工具

minikube kubectl -- get po -A

此时就可以使用kubectl命令来进行各种kubernetes的操作了。

5.常见安装问题

Docker安全问题报错:

exiting due to drv_as_root: the "docker" driver should not be used with root privileges

解决办法1:

minikube start --force --driver=docker

解决办法2:

添加新用户

adduser newUser
usermod -aG sudo newUser
su - newUser

登录新创建的用户

su - newUser

将用户添加到 Docker 组

sudo groupadd docker
sudo usermod -aG docker $USER

使用以下命令重新登录并启动 minikube

minikube start --driver=docker

验证 minikube 是否正在运行

docker ps

参考自https://github.com/kubernetes/minikube/issues/7903

docker报错:

docker only has 0MiB available, less than the required 1800MiB for Kubernetes

解决办法:

docker system prune
minikube delete
minikube start --driver=docker

卸载minikube

minikube stop
minikube delete
docker stop (docker ps -aq)
rm -r ~/.kube ~/.minikube
sudo rm /usr/local/bin/localkube /usr/local/bin/minikube
systemctl stop '*kubelet*.mount'
sudo rm -rf /etc/kubernetes/
docker system prune -af –volumes(清理docker没有使用的数据,包括镜像数据,已经停止的容器)

Minikube实战

开启控制台

minikube dashboard

点击在下方出现的url,即可进入控制台

查看集群的详细信息

kubectl cluster-info

部署应用程序

创建一个示例部署并在端口 8080 上公开它:

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080

这可能需要一些时间,但部署很快就会在运行时显示:

kubectl get services hello-minikube

访问此服务的最简单方法是让minikube为您启动一个Web浏览器:

minikube service hello-minikube

或者,使用 kubectl 转发端口:

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

应用程序现在可在 http://localhost:7080/ 上使用。

如果url无法连接,可以参考官方文档

Host access​minikube.sigs.k8s.io/docs/handbook/host-access/

Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐