使用Minikube部署K8S集群
和Kind一样, Minikube是Kubernetes官方提供的专门针对本地单节点的Kubernetes集群管理工具。针对本地环境对Kubernetes使用有一定的简化和针对性的补强。供希望尝试Kubernetes或日常开发的用户测试使用。特点是不能启动生产集群,没有高可用性的单节点机器。
#linux上安装k8s
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
#安装kubectl
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
#启动k8s集群
minikube start --registry-mirror=https://registry.docker-cn.com \
--image-mirror-country=cn \
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
--vm-driver=hyperv \
--memory=4096
vm-drvier参数是指: Minikube 所采用的虚拟机,根据不同操作系统,不同的虚拟机可以有以下选项:
操作系统 | 支持虚拟机 | 参数值 |
Windows | Hyper-V | hyperv |
Windows | VirtualBox | virtualbox |
Linux | KVM | kvm2 |
Linux | VirtualBox | virtualbox |
MacOS | HyperKit | hyperkit |
MacOS | VirtualBox | virtualbox |
MacOS | Parallels Desktop | parallels |
MacOS | VMware Fusion | vmware |
#常用命令
minkkube stop #停止minikube
minikube dashboard #启动dashboard
minikube addons list #组件列表
minikube addons enable ingress #启动ingress
minikube addons enable metrics-server
minikube addons disable ingress #禁用ingress
minikube cache add alpine:latest #推送镜像到minikube服务器
minikube cache reload #重新加载镜像
minikube cache list #镜像列表
minikube cache delete <image name> #删除镜像
minikube start --kubernetes-version=latest #升级最新版
minikube delete --all#删除集群
使用kind部署k8s
kind即Kubernetes In Docker,将k8s所需要的所有组件,全部部署在了一个docker容器中,是一套开箱即用的k8s环境搭建方案,可以让我们快速的搭建k8s测试平台。
它将每个容器模拟成一个k8s节点,可以轻松地在单节点上部署"多节点"集群,甚至"高可用集群",而且还可以部署和管理多个版本集群。在搭建个人学习平台时,如果要搭建一个多控多计算的集群,个人电脑很难有这么高的资源配置,使用kind来部署集群就很有必要了。
#linux安装
curl -Lo kind https://github.com/kubernetes-sigs/kind/releases/download/v0.20.0/kind-linux-amd64
chmod +x ./kind && mv ./kind /usr/local/bin/kind
#查看Kind版本信息
kind version
#创建集群
kind create cluster #如果不指定名字则默认为kind --name kind-2
Creating cluster "kind" ...
Ensuring node image (kindest/node:v1.27.3)
搭建多节点集群
如果期望通过Kind搭建多节点集群,可以通过配置文件实现。下面是创建一个包含2个控制平面节点、3个工作节点的K8s集群的配置文件。
#Kind创建K8s集群 配置文件
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes: #该集群包含2个控制平面节点、3个工作节点
- role: control-plane #设置端口映射, 便于通过宿主机访问节点
extraPortMappings:
- containerPort: 80
hostPort: 8880
listenAddress: "127.0.0.1"
- containerPort: 443
hostPort: 8443
listenAddress: "127.0.0.1"
- role: control-plane #设置端口映射, 便于通过宿主机访问节点
extraPortMappings:
- containerPort: 80
hostPort: 9980
listenAddress: "127.0.0.1"
- containerPort: 443
hostPort: 9443
listenAddress: "127.0.0.1"
- role: worker
- role: worker
- role: worker
#然后创建集群
kind create cluster --name k8s-cluster --config k8s-cluster-3.yam
kind get clusters #查看集群
kind delete cluster #删除集群
kind delete clusters –all #删除所有集群