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 仅支持等式)

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

浙公网安备 33010602011771号