从零开始的K8S学习笔记(二)K8S本地开发环境——minikube安装部署及实践
Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。通过Kubernetes你可以:· 快速部署应用· 快速扩展应用· 无缝对接新的应用功能· 节省资源,优化硬件资源的使用。
什么是K8S
Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。
通过Kubernetes你可以:
· 快速部署应用
· 快速扩展应用
· 无缝对接新的应用功能
· 节省资源,优化硬件资源的使用
什么是Minikube
Minikube 是一种轻量级的 Kubernetes 实现,可在本地计算机上创建 VM 并部署仅包含一个节点的简单集群。 Minikube 可用于 Linux , macOS 和 Windows 系统。Minikube CLI 提供了用于引导集群工作的多种操作,包括启动、停止、查看状态和删除。
Minikube一般用于本地开发、测试和学习。
学习k8s可以到官方文档查看相关资料。
官方文档的交互式教程,在教程里,可以使用预装有 Minikube 的在线终端进行体验。
部署安装Minikube
安装步骤
参考自minikube的官网:minikube start | minikube (k8s.io)
最低配置
· 2 个cpu核心或更多
· 2GB 可用内存
· 20GB 可用磁盘空间
· 因特网连接
· 容器或虚拟机管理器,例如:Docker、Hyperkit、Hyper-V、KVM、Parallels、Podman、VirtualBox 或 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无法连接,可以参考官方文档
更多推荐
所有评论(0)