k8s 命令 重启_通过k8s入门好帮手 minikube 快速搭建本地k8s集群环境(一)
minikube介绍徒手搭建过k8s的同学都晓得其中的煎熬,复杂的认证,配置环节相当折磨人,出错率相当高,而minikube就是为解决这个问题而衍生出来的工具,它基于go语言开发,可以在单机环境下快速搭建可用的k8s集群,非常适合测试和本地开发,现有的大部分在线k8s实验环境也是基于minikube,如果想直接试用k8s,可直接用 play-with-k8s ,下图为minikube 创建k8s集
minikube介绍
徒手搭建过k8s的同学都晓得其中的煎熬,复杂的认证,配置环节相当折磨人,出错率相当高,而minikube就是为解决这个问题而衍生出来的工具,它基于go语言开发,可以在单机环境下快速搭建可用的k8s集群,非常适合测试和本地开发,现有的大部分在线k8s实验环境也是基于minikube,如果想直接试用k8s,可直接用 play-with-k8s ,下图为minikube 创建k8s集群的简易流程
少絮叨,先上手
环境
- windows 10
- minikube 1.8.2
- kubernetes 17.3
安装minikube
- 使用 window包管理工具 choco 安装 minikube choco install minikube
- 也可以直接下载安装包 minikube
- 安装完成后命令行输入 minikube version 如下说明安装成功
创建k8s环境
minikube 提供了跨平台搭建k8s的能力,支持mac ,linux ,windows平台,每一个平台上也支持多种驱动架构,windows 支持docker,hyper-V,virtualBox等,由于win10已经内置了Hyper-V,这里选择Hyper-v
- 命令行启用Hyper-v 管理员权限打开 powershell,运行如下命令 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
- 也可以选择图形界面
- 启用完成后,按照提示重启电脑
- 创建虚拟网络交换机
- 创建k8s 正常情况下运行如下命令即可 minikube start --driver=hyperv --hyperv-virtual-switch="minikube" ```
- 使用国内镜像创建 由于网络原因,用官网源创建可能一直失败,所以切换镜像源到国内镜像,如下
minikube.exe 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 虚机内存大小
这里会花一段时间去拉镜像,构建集群,耐心等待
- 查看集群状态 正常情况下,等待一段时间,集群便搭建成功,运行如下命令,查看集群状态 minikube kubectl get nodes
首次执行会安装windows平台的kubectl,安装好之后再执行,即可看到集群已经就绪
- 打开dashboard 运行 minikube.exe dashboard ,访问管理页至此没有异常的化,k8s单机集群就搭建完成了
万年hello
- 配置资源 接下来启动一个运行着web 应用的容器,资源描述如下
apiVersion: apps/v1 kind: Deploymentmetadata: 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
- 启动应用 保存该文件为 hello-application.yaml,运行如下命令kubectl.exe apply -f .hello-application.yaml,提示创建成功
- 查看deploymen 状态如下 运行
- 暴露应用访问入口 运行如下命令,服务暴露方式为NodePort
kubectl.exe expose deployment hello-world --type=NodePort --name=node-service
- 查看node-service 可以看到,服务通过30585 端口映射到容器的8080端口,这样我们就可以通过 30585端口访问容器内的web应用了,如下响应正常 到此,通过k8s 搭建web应用就完成了
总结
搭建过程中出过不少异常,需要一点一点分析或找资料解决,但相对全程徒手搭建,效率提高不少,本地测试玩耍必备,下面大概了解下我们搭建完成后都产生了什么资源
- 虚机 minikube创建了一台虚机,用来搭建linux环境
- 容器 minikube ssh 登录,docker ps 可以看到很多运行中的容器,包括web应用,k8s dashboard, etcd,coredns,storage,scheduler,apiserever,controller等,正是这些资源之间相互协作,帮我们完成快速部署应用,后续继续探究
更多推荐
所有评论(0)