kubernetes是什么?
是goole开源的一个容器化应用管理平台.可以实现容器集群的自动化部署、自动扩缩容、维护等功能.
为什么要使用kubernetes?
首先kubernetes对集群的管理提供了一个简洁的处理方案;另外,在当前这个微服务盛行的大环境下,如何对容器化应用进行有效管理成为一个热点话题,而kubernetes正好可满足我们容器化管理需求,提供了一些列方便的操作方法,比如对应用的负载均衡管理、滚动更新等。
如何使用kubernetes?
参考Kubernetes Tutorial,学习如何创建一个Cluster,部署一个application,expose一个application,scale一个application,update一个application等操作。
基础环境构建--docker
Kubernetes主要对集群中的容器管理,因此在这里很大程度上离不开docker。要想做有关Kubernetes的实验demo,首先构建一个基础环境,本机实例环境:
Mac 操作系统
安装virtualbox
安装docker
docker安装成功后开启Kubernetes功能
安装docker的过程很简单,直接从网上下载执行文件,一路next安装即可,也可参考在Mac上用docker部署springboot项目。安装完成后开启Kubernetes功能,如下图设置:

minikube是什么
minikube相当于一个运行在本地的Kubernetes单节点,我们可以在里面创建Pods来创建对应的服务。(别人的解释:Minikube是一个快速搭建单节点Kubenetes集群的工具.
官方描述:Minikube is a tool that makes it easy to run Kubernetes locally. Minikube runs a single-node Kubernetes cluster inside a VM on your laptop for users looking to try out Kubernetes or develop with it day-to-day.
kubectl介绍
kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署.
本地构建镜像
借用Kubernetes Tutorial中脚本,分别创建两个文件,Dockerfile和server.js,如下


构建镜像:
docker build -t pig:v1 .
然后,查看新创建的镜像是否存在
docker images
可以看到下图第二行的镜像,即为新创建的image

如果在此,还想验证一下镜像是否正确的话,可以运行image,
docker run -d -p 8088:8080 pig:v1
然后在浏览器中访问localhost:8088是否成功~
把镜像push到docker.io
- 首先我要解释为什么要做这么一步?
按理说,我们在本地创建了镜像,如果有需要的话我们还可把创建的image给运行起来,但是后面我们需要部署第一个application,在部署第一个应用的时候需要指定镜像地址,经过我的测试发现,如果我直接指定本地的镜像名称的时候一直没有成功,在官方文档教程中我看到image是直接从goole云平台系统中pull过来的,我这里没有goole云平台系统的账户,但是我在下载docker的时候,我注册了docker,因此这里考虑把本地创建的image push到docker Hub中,方便我们后续从docker Hub拉取image。 - 怎么做?怎么把本地image push到docker Hub?
首先,你要在docker 上注册账户,登录之后,可以创建repository,
image.png
接下来,在terminal登录docker账户
//按照提示输入密码啥的就行
docker login
创建Deployment
kubectl create deployment sb-demo --image=docker.io/cczhao/cczhao-repo:sb --port=8083
然后,可以通过下面的命令去查看
kubectl get deployments
kubectl get pods
使用service暴露application
kubectl expose deployment sb-demo --type="NodePort" --port=8080
查看expose之后的pod和service信息,
kubectl get pods
kubectl get services

检查Node映射的端口,
kubectl describe services/sb-demo

检测是否可访问,
curl $(minikube ip):31436
使用scale调整pod副本数量
kubectl expose deployments/sb-demo --replicas=5
滚动更新
该部分内容后续更新。
网友评论