kubernetes-9-minikube安装本地单节点k8s集群

手动搭建k8s,复杂的认证,配置环节出错率高,minikube就是为解决这个问题而衍生出来的工具,它基于go语言开发,可以在单机环境下快速搭建可用的k8s集群,非常适合测试和本地开发,现有的大部分在线k8s实验环境也是基于minikube。
在这里插入图片描述Minikube 是 K8S 官方为了开发者能在个人电脑上运行 K8S 而提供的一套工具。实现上是通过 Go 语言编写,通过调用虚拟化管理程序,创建出一个运行在虚拟机内的单节点集群。
在这里插入图片描述

(1)环境需求
windows 10
minikube 1.16.0
kubernetes 17.3

1 windows10安装minikube

下载安装包https://storage.googleapis.com/minikube/releases/latest/minikube-installer.exe。
安装位置D:\s\Minikube
CMD>minikube version【V1.16.0】
在这里插入图片描述

2 使用Hyper-V驱动

minikube 提供了跨平台搭建k8s的能力,支持mac ,linux ,windows平台,每一个平台上也支持多种驱动架构,windows 支持docker,hyper-V,virtualBox等,由于win10已经内置了Hyper-V,这里选择Hyper-v。

(1)控制面板->程序->程序和功能->启用或关闭Windows功能。
在这里插入图片描述按照提示重启电脑。

(2)Hyper-V管理器
虚拟交换机管理器
在这里插入图片描述

2.1 创建虚拟交换机

在这里插入图片描述输入属性
在这里插入图片描述

2.2 创建k8s

(1)官网命令

minikube start --driver=hyperv   --hyperv-virtual-switch="minikube"

由于网络原因,用官网源创建可能一直失败。
(2)使用国内镜像
以管理员权限打开CMD

minikube start  image-mirror-country='cn' --registry-mirror=https://registry.docker-cn.com --vm-driver="hyperv" --memory=4096 --hyperv-virtual-switch="minikube" --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

选项说明:

--vm-driver 如果不写会自动检测,可选值 virtualbox, vmwarefusion, hyperv, vmware。
--image-mirror-country 需要使用的镜像镜像的国家/地区代码。留空以使用全球代码。对于中国大陆用户,请将其设置为 cn。
--image-repository 用来拉取 Kubernetes 集群所需镜像的仓库。
--registry-mirror 是docker registry 的镜像源,集群安装后拉取镜像加速用,可以使用其它加速器地址。
--memory 虚机内存大小

需要一段时间拉去镜像,构建集群,耐心等待。
在这里插入图片描述

(3)查看集群状态
正常情况下,等待一段时间,集群便搭建成功,运行如下命令,查看集群状态。
首次执行会安装windows平台的kubectl,安装好之后再执行,即可看到集群已经就绪。
C:\Users\user.minikube\cache\windows\v1.20.0\kubectl.exe
检验Node状态
CMD>minikube kubectl get nodes
在这里插入图片描述
到此k8s单机集群就搭建完成了。

2.3 管理k8s

(1)打开dashboard,访问管理页,会自动打开
CMD>minikube dashboard
在这里插入图片描述http://127.0.0.1:1538/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/。

(2)检测集群状态
CMD>minikube kubectl cluster-info
在这里插入图片描述
(3)使用ssh进入Minikube虚机
CMD>minikube ssh
在这里插入图片描述$ exit登出logout

(4)停止运行中的kubernetes集群
CMD>minikube stop
在这里插入图片描述会关闭创建的虚拟机
在这里插入图片描述

(5)启动已有的kubernetes集群
CMD>minikube start
在这里插入图片描述
(6)删除本地的kubernetes集群
CMD>minikube delete

(7)查看安装的组件
CMD>>minikube addons list
例如在minikube上默认安装并启用仪表板插件。
在这里插入图片描述

2.4 使用k8s

(1)文件hello-application.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-world
spec:
  selector:
    matchLabels:
      run: load-balancer-example
  replicas: 2
  template:
    metadata:
      labels:
        run: load-balancer-example
    spec:
      containers:
        - name: hello-world
          image: registry.cn-hangzhou.aliyuncs.com/aliyun_google/google-sample-node-hello:1.0
          ports:
            - containerPort: 8080
              protocol: TCP

该文件简单描述了一个k8s deployment 资源的属性,包含一个deployment,一个replicaSets,每一个replicaSets 包含两个Pod,每个Pod中运行一个容器,容器的镜像源是registry.cn-hangzhou.aliyuncs.com/aliyun_google/google-sample-node-hello:1.0,容器端口8080。
(2)启动应用
因为没有配置环境变量,所以需要切换目录C:\Users\user.minikube\cache\windows\v1.20.0\kubectl.exe。
CMD>kubectl.exe apply -f C:\Users\user\Desktop\hello-application.yaml
CMD>kubectl.exe get deployment
CMD>kubectl.exe describe deployment hello-world
CMD>kubectl.exe get pods
CMD>kubectl.exe describe pod hello-world-68fdbf5747-4gsgb
CMD>>kubectl.exe delete -f C:\Users\user\Desktop\hello-application.yaml
在这里插入图片描述(3)暴露应用访问入口
服务暴露方式为NodePort
CMD>kubectl.exe expose deployment hello-world --type=NodePort --name=node-service
CMD>kubectl.exe get service node-service
CMD>kubectl.exe describe service node-service
在这里插入图片描述服务通过32053 端口映射到容器的8080端口,这样我们就可以通过 32053端口访问容器内的web应用了。
宿主机
在这里插入图片描述虚拟机
在这里插入图片描述http://192.168.43.120:32053/
在这里插入图片描述

2.5 分析

(1)minikube创建了一台虚机,用来搭建linux环境
在这里插入图片描述(2)容器
CMD>minikube ssh 登录,
$docker ps 可以看到很多运行中的容器,包括web应用,k8s dashboard, etcd,coredns,storage,scheduler,apiserever,controller等
$docker images

在这里插入图片描述
(3)如需更新minikube,需要更新 minikube 安装包
CMD>minikube delete 删除现有虚机
删除 ~/.minikube 目录缓存的文件C:\Users\user.minikube
重新创建 minikube 环境
在这里插入图片描述

3 使用VirtualBox驱动

由于minikube复用了docker-machine,在其软件包中已经支持了相应的VirtualBox, VMware Fusion驱动。

VT-x/AMD-v 虚拟化必须在 BIOS 中开启。

在Windows环境下,如果开启了Hyper-V,不支持VirtualBox方式。

(1)前往关闭hyper-v服务(选择手动启动并关闭服务),同时在控制面板–程序–启动或关闭程序功能中将hyper-v取消勾选。
(2)VERR_NEM_VM_CREATE_FAILED
必须以管理员的身份启动window命令窗口并运行
CMD>bcdedit /set hypervisorlaunchtype off。不以管理员启动命令窗口的话,运行以上指令将会提示无法操作的问题,因为权限不足。
(3)重启电脑

3.1 windows中安装virtualbox软件

3.2 创建k8s

(1)首先清除已经创建的基于Hyper-V的环境
CMD>minikube delete
(2)安装k8s

minikube start  image-mirror-country='cn' --registry-mirror=https://registry.docker-cn.com --vm-driver="virtualbox" --memory=4096 --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers

在这里插入图片描述
会自动创建基于virtualBox的虚拟机。
在这里插入图片描述

3.3 管理k8s

在这里插入图片描述宿主机IP
在这里插入图片描述
登入虚拟机,查看IP地址
在这里插入图片描述
虚拟机minikube的用户名docker密码tcuser。
IP192.168.99.100。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_20466211/article/details/107591687