Kubernetes安装篇(上):基于Minikube方式部署本地环境
一切先从安装开始!
学习一门新的技术,一般先从安装开始,实实在在的安装完,使用它,逐步深入了解。
为了方便大家开发、学习和体验Kubernetes,Kubernetes社区提供了可以在本地部署的minikube
,通过minikube方式可以在本地运行Kubernetes。
(Kubernetes的部署方式还有很多,本文是基于本地开发环境的部署方式,学习它足够了。想要部署一套符合生产环境的集群不是一件容易的事,随后其他篇章将会涉及。)
1、Minikube
Minikube
是一个可以在本地轻松运行 Kubernetes
的工具。Minikube
会在您的电脑中的虚拟机上运行一个单节点的Kubernetes
集群,以便用户对Kubernetes
进行使用或者在之上进行Kubernetes
的日常开发。
特征:
minikube
运行Kubernetes
的最新稳定版本,并支持标准的Kubernetes
功能,例如:
- 负载均衡: 使用
minikube tunnel
- 多集群: 使用
minikube start -p <name>
- NodePorts: 使用
minikube service
- 持久卷
- Ingress
- Dashboard: 仪表盘,使用
minikube dashboard
启动。
2、安装
可以在本地虚拟机环境下安装。
由于网络访问原因,很多朋友无法直接使用minikube
进行安装。在最新的Minikube中,已经提供了配置化的方式,可以帮助大家利用阿里云的镜像地址来获取所需Docker镜像和配置。
2.1 安装kubectl
kubectl
是一个用于管理Kubernetes
的命令行工具,可以检查集群资源、创建、删除和更新组件,查看你的新集群,并启动实例应用程序。
(1) 使用国内阿里云源安装
[xcbeyond@localhost ~]$ curl -LO http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/`curl -s http://kubernetes.oss-cn-hangzhou.aliyuncs.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/kubectl
(2) 查看版本
安装完,执行命令kubectl version
查看版本,确认是否安装成功。
[xcbeyond@localhost ~]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.2", GitCommit:"f5743093fd1c663cb0cbc89748f730662345d44d", GitTreeState:"clean", BuildDate:"2020-09-16T13:41:02Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.0", GitCommit:"e19964183377d0ec2052d1f1fa930c4d7575bd50", GitTreeState:"clean", BuildDate:"2020-08-26T14:23:04Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
2.2 安装minikube
minikube
是一个本地Kubernetes集群的实现,minikube
的主要目标是,成为本地开发Kubernetes和支持Kubernetes全部特性的最佳工具。用于在你电脑中的虚拟机上运行一个单节点的Kubernetes集群。
(1) 使用国内阿里云源安装
[xcbeyond@localhost ~]$ curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.13.0/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
(2) 安装启动
可以运行命令minikube start
来启动本地Kubernetes集群。
为了访问海外的资源,阿里云提供了一系列基础设施,请按照如下参数进行配置。其中常见参数:
--driver=***: 从1.5.0版本开始,Minikube缺省使用本地最好的驱动来创建Kubernetes本地环境,测试过的版本docker,kvm
--image-mirror-country cn: 将缺省利用
registry.cn-hangzhou.aliyuncs.com/google_containers
作为安装Kubernetes的容器镜像仓库 (阿里云版本可选)--iso-url=***: 利用阿里云的镜像地址下载相应的.iso 文件(阿里云版本可选)
--registry-mirror=***: 为了拉取Docker Hub镜像,需要为 Docker daemon 配置镜像加速,参考阿里云镜像服务
--cpus=2:为minikube虚拟机分配CPU核数
--memory=2048mb:为minikube虚拟机分配内存数
--kubernetes-version=***:minikube虚拟机将使用的kubernetes版本
启动minikube:
首次启动需要下载镜像,需要耐心等待...
如果中途失败,可再次执行命令。
[xcbeyond@localhost ~]$ minikube start --driver=docker
* Centos 7.8.2003 上的 minikube v1.13.0
* 根据现有的配置文件使用 docker 驱动程序
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Creating docker container (CPUs=2, Memory=2200MB) ...
* 正在 Docker 19.03.8 中准备 Kubernetes v1.19.0…
> kubectl.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
> kubelet.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
> kubeadm.sha256: 65 B / 65 B [--------------------------] 100.00% ? p/s 0s
> kubectl: 41.01 MiB / 41.01 MiB [-----------] 100.00% 496.18 KiB p/s 1m24s
> kubeadm: 37.30 MiB / 37.30 MiB [---------------] 100.00% 3.15 MiB p/s 12s
> kubelet: 104.88 MiB / 104.88 MiB [-------------] 100.00% 3.34 MiB p/s 32s
* Verifying Kubernetes components...
* Enabled addons: default-storageclass, storage-provisioner
* Done! kubectl is now configured to use "minikube" by default
(3) 打开Kubernetes控制台
在本地(虚拟机桌面内)执行命令minikube dashboard
,将会自动在浏览器中打开Kubernetes控制台。
(如果通过shell远程登录执行,必会出现在浏览器中打开失败的错误提示,可忽略。)
[xcbeyond@localhost ~]$ minikube dashboard
🤔 正在验证 dashboard 运行情况 ...
🚀 Launching proxy ...
🤔 正在验证 proxy 运行状况 ...
🎉 Opening http://127.0.0.1:38620/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
This tool has been deprecated, use 'gio open' instead.
See 'gio help open' for more info.
如何能够外部访问呢?只需要添加一层代理即可。
使用proxy代理到虚拟机的指定端口,执行以下命令:
kubectl proxy --port=<指定访问端口> --address=<实际IP> --accept-hosts='^.*' &
比如:
xcbeyond@localhost ~]$ kubectl proxy --port=8001 --address='192.168.11.129' --accept-hosts='^.*' &
[1] 83066
[xcbeyond@localhost ~]$ Starting to serve on 192.168.11.129:8001
浏览器访问地址:http://192.168.11.129:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default
好了,开始探索Kubernetes的世界吧!
参考文章:

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Feed流系统重构-架构篇
重构,于我而言,很大的快乐在于能够解决问题。 第一次重构是重构一个c#版本的彩票算奖系统。当时的算奖系统在开奖后,算奖经常超时,导致用户经常投诉。接到重构的任务,既兴奋又紧张,花了两天时间,除了吃饭睡觉,都在撸代码。重构效果也很明显,算奖耗时从原来的1个小时减少到10分钟。 去年,我以架构师的身份参与了家校朋友圈应用的重构。应用麻雀虽小,五脏俱全,和诸君分享架构设计的思路。 01 应用背景 1. 应用介绍 移动互联网时代,Feed流产品是非常常见的,比如我们每天都会用到的朋友圈,微博,就是一种非常典型的Feed流产品。 Feed(动态):Feed流中的每一条状态或者消息都是Feed,比如朋友圈中的一个状态就是一个Feed,微博中的一条微博就是一个Feed。 Feed流:持续更新并呈现给用户内容的信息流。每个人的朋友圈,微博关注页等等都是一个Feed流。 家校朋友圈是校信app的一个子功能。学生和老师可以发送图片,视频,声音等动态信息,学生和老师可以查看班级下的动态聚合。 为什么要重构呢? ▍ 代码可维护性 服务端端代码已经有四年左右的历史,随着时间的推移,人员的变动,不断的修复Bug,...
-
下一篇
日常Bug排查-系统失去响应-Redis使用不当
日常Bug排查-系统失去响应-Redis使用不当 前言 日常Bug排查系列都是一些简单Bug排查,笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材^_^。 Bug现场 开发反应线上系统出现失去响应的现象,收到业务告警已经频繁MarkAndSweep(Full GC)告警。于是找到笔者进行排查。 看基础监控 首先呢,当然是看我们的监控了,找到对应失去响应的系统的ip,看下我们的基础监控。 机器内存持续上升。因为我们是java系统,堆的大小一开始已经设置了最大值。 --XX:Xms2g -Xmx2g 所以看上去像堆外内存泄露。而FullGC告警只是堆外内存后一些关联堆内对象触发。 看应用监控 第二步,当然就是观察我们的应用监控,这边笔者用的是CAT。观察Cat中对应应用的情况,很容易发现,其ActiveThread呈现不正常的现象,竟然达到了5000+多个,同时和内存上升曲线保持一致。 jstack java应用中遇到线程数过多的现象,首先我们考虑的是jstack,jstack出来对应的文件后。我们less一下,发现很多线程卡在下面的代码栈上。 "Thread-1234 java...
相关文章
文章评论
共有0条评论来说两句吧...