使用minikube搭建K8s(Kubernetes)集群是一个在本地快速设置Kubernetes环境的方法,特别适合用于学习和开发。以下是详细步骤:
一、环境准备
操作系统:如Linux CentOS 7.9 64位。
CPU和内存:至少2核CPU和4GiB内存,建议2核CPU和更多内存以获得更好的性能。
硬盘:至少需要20GB的硬盘空间。
网络:需要网络连接以下载和访问必要的资源。
容器:需要先安装Docker,建议使用较新的稳定版本,如Docker 24.0.4或Docker 20.10.x。
二、安装Docker
移除旧版本的Docker(如果已安装):
bash
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
配置yum源:
bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装Docker:
bash
sudo yum install -y docker-ce docker-ce-cli containerd.io
启动Docker:
bash
systemctl enable docker --now
配置Docker加速(可选):
编辑/etc/docker/daemon.json文件,添加以下内容:
json
{
"registry-mirrors": ["https://lkb2w75n.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
然后重新加载Docker配置并重启Docker服务:
bash
sudo systemctl daemon-reload
sudo systemctl restart docker
三、安装Minikube
下载并安装Minikube:
bash
sudo curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
或者下载指定版本的Minikube:
bash
sudo curl -LO https://storage.googleapis.com/minikube/releases/v1.XX.X/minikube-linux-amd64 && sudo install minikube-linux-amd64 /usr/local/bin/minikube
请将v1.XX.X替换为所需的版本号。
验证Minikube安装:
bash
minikube version
四、启动Minikube集群
启动Minikube集群:
bash
minikube start --image-mirror-country='cn' --kubernetes-version=v1.XX.X
请将v1.XX.X替换为所需的Kubernetes版本号。如果需要使用root用户启动,可以添加--force参数:
bash
minikube start --force --image-mirror-country='cn' --kubernetes-version=v1.XX.X
验证集群状态:
bash
minikube status
验证kubectl版本:
由于Minikube内置的kubectl命令功能不全,建议独立安装一个kubectl。可以使用以下命令下载并安装最新版本的kubectl:
bash
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m0755 kubectl /usr/local/bin/kubectl
kubectl version --client --output=yaml
然后验证kubectl是否可以正确连接到Minikube集群:
bash
minikube kubectl version
五、启动Kubernetes Dashboard
启动Dashboard并显示代理地址:
bash
minikube dashboard --url
该URL只能在宿主机内部访问。如果需要在宿主机之外访问,需要设置kubectl proxy代理或其他方式。
设置kubectl proxy代理:
bash
minikube kubectl -- proxy --address='0.0.0.0' --accept-hosts='^*$'&
然后修改ECS防火墙规则,允许入方向的8001端口通行。在宿主机之外的浏览器中访问:http://ECS公网IP:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/。
六、部署应用
创建一个Deployment(例如nginx):
bash
kubectl create deployment test-nginx --image=nginx:1.7.9
查看Deployment和Pod状态:
bash
kubectl get pod,deploy
暴露Service端口:
bash
kubectl expose deploy test-nginx --port=80 --type=NodePort
查看Service状态:
bash
kubectl get svc
在Minikube环境中,可以通过minikube service命令来访问暴露的服务:
[kod.fxs360.com)
[kod.wed921.com)
[kod.zhidianjiaoyu.com)
[kod.zgbzcq.com)
[kod.myhallo.com)
[kod.wuyouliangpin.com)
[kod.tupiangc.com)
bash
minikube service test-nginx
这将会打开一个浏览器窗口并显示服务的地址和端口。
注意事项
在使用Minikube时,如果遇到任何问题,可以参考官方文档或社区提供的解决方案。
Minikube主要用于学习和开发环境,不建议在生产环境中使用。
根据需要调整Minikube的启动参数,如CPU、内存和Kubernetes版本等。
通过以上步骤,您应该能够成功使用Minikube搭建一个本地的Kubernetes集群,并部署和运行容器化的应用程序。