kubernets (一) :通过minikube 部署单节点k8s集群

先看下docker swarm 架构

  

 

 

对比k8s 架构

 

 

 

etcd  是分布 存储

看下node架构

 

 

各组件实现细节

 

 

 

 

 

搭建一个单节点k8s 集群

通过minikube 查看官方文档首先要下载一个虚拟化工具 (我在windows上进行 安装了virtualbox)

参考说明:https://kubernetes.io/docs/tasks/tools/install-minikube/#cleanup-everything-to-start-fresh

 

安装完 virtualbox  接着安装kubectl ,下载完成 更改名称为 ,kubectl.exe

 

 

 

 

 

同样安装minikube

 

查看版本

 

 

接下来就可以创建单节点k8s

 

自动启动 virtualbox虚拟机

 运行 minikube start (要能访问google)

 

 

 

查看集群状态

 

进入机器

运行 minikube ssh

 

查看运行的容器

 

 

 

 查看

l

利用定义好的yaml 文件创建相应的资源,不如创建一个pod,定义的文件内容如下:

 

 

 开始创建pod 资源

 

 创建过程中

创建完成

可以看到运行nginx 的容器在minikube这个node上 ,可以进入容器;两种方法

1、连上minikube这个pod ,通过这个pod 进入容器

 

 

 

 

2、通过kubectl 直接进入

 

 

 

 

nginx容器地址在外部无法访问,通过端口映射把容器的80端口映射到外部主机8080端口

 

 

 

打开本地windows浏览器访问8080端口  可以访问

 

 

 

 

删除pod

 

 

ReplicaSet的创建

说到ReplicaSet对象,得先说说ReplicationController(简称为RC)。在旧版本的Kubernetes中,只有ReplicationController对象。它的主要作用是确保Pod以你指定的副本数运行,即如果有容器异常退出,会自动创建新的 Pod 来替代;而异常多出来的容器也会自动回收。可以说,通过ReplicationController,Kubernetes实现了集群的高可用性。

在新版本的 Kubernetes 中建议使用 ReplicaSet(简称为RS )来取代 ReplicationController。ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector(ReplicationController 仅支持等式)

ReplicaSet和Pod一样,都是Kubernetes中的对象,因此创建方式类似。通过yaml或json描述文件来定义一个ReplicaSet对象


如下所示:
 

 

 Kubernetes官方强烈建议避免直接使用ReplicaSet,而应该通过Deployment来创建RS和Pod。

由于ReplicaSet是ReplicationController的代替物,因此用法基本相同,唯一的区别在于ReplicaSet支持集合式的selector。

创建如下:


 

 

删除一个pod 看看效果,发现删除一个pod 后会再自动创建一个 ,因为通过ReplicaSet 指定了3个  会自动维持pod数目

 

 

扩展:

 

 

比RepliSet 或ReplicationController 更好的方式是通过Deployment   (https://kubernetes.io/docs/concepts/workloads/controllers/deployment/)

Deployment可以创建或更新RepliSet和pods,示例文件:

 

 

 开始创建:

 

 

 

 

 

更新镜像:

 

 

可以看到会把旧的pods 删除 创建新的

 

查看rs  旧的没用了

 

回退到以前的版本

 

让外部可以访问内部 通过expose 以服务形式暴露给外面主机

 

 

 

 

 

 

参考文章:

https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#writing-a-deployment-spec

https://kubernetes.io/docs/tasks/tools/install-minikube/#cleanup-everything-to-start-fresh

https://www.jianshu.com/p/fd8d8d51741e

 

posted @ 2019-06-01 14:16  那个谁866  阅读(1392)  评论(0编辑  收藏  举报