3 Kubernetes 入门

理解Kubernetes

Kubernetes是一个跨多主机的应用程序容器管理平台

面向容器的应用程序,提供丰富管理特性,如自动扩展、滚动部署、技术资源、存储卷管理

可运行在裸机上、数据中心、公有云或混合云

Kubernetes包含应用程序容器的主要操作要求

容器部署、持久化存储、容器监控、计算资源管理、自动扩展、高可用(集群联邦)

Kubernetes组件


Master与节点通信

客户端使用kubectl向API服务器发送请求

API服务器响应请求,在etcd中推送和提取响应的对象信息

调度器Scheduler决定应该分配那个节点来执行任务(如运行pod)

控制管理器Controller Manager监控正在进行的任务,当状态异常时做响应

API服务器通过kubelet从Pod获取日志,并作为master组件之间的转发中心

开始使用Kubernetes

控制滚动升级的参数

所有容器与服务选择器相匹配,服务会将流量分发到所有Pod,而不需要显示分配

Kubernetes四种服务类型

ClusterIP:默认服务类型,暴露服务的集群内部IP,集群中的Pod可以通过IP地址、环境变量或DNS访问服务,默认情况下Kubernetes会为每个服务器暴露7个环境变量,前两个被插件kube-dns用作服务发现,有些情况,用户既不需要负载均衡也不需要代理,可以设置ClusterIP为none,headless service

NodePort:Kubernetes将在每个节点上分配一个特点范围的端口,任何端口上的流量都将被路由到服务端口

LoadBalancer:适用于云服务提供商,通过创建该服务,Kubernetes将通过云服务提供商向服务提供负载均衡器,externalname为及群众的外部端点创建CNAME的桥梁,使用选择器的服务器:服务使用选择器来匹配Pod以引导流量

示例:在另一个pod中使用${SVCNAME}_SERVICE_HOST来检查能否访问到nginx Pod

不使用选择器,kubernetes不会创建端点,不知道如何路由流量,没有选择器可匹配pod,必须自己创建

容器编排

示例:Kubernetes世界中的kiosk

kiosk作为前端Web服务,为票务的get\put请求提供的端口;redis作为缓存,管理拥有的票数;还充当发布订阅系统,有票卖出kiosk就向其发布事件;订阅者recorder作为记录器,将写入时间戳并记录到MySQL数据库当中

先启动MySQL:recorder要依赖它,创建MySQL前需创建好对应的Secret和ConfigMap

将lcredis-service.default通过环境变量传到kiosk,kube-dns为service对象创建DNS名称(服务),kiosk可通过环境变量访问redis主机

创建Recorder,没有暴露任何端口,不需要创建service对象

Recorder需要访问Redis和MySQL,通过Secret传递root凭据,Redis和MySQL通过对应服务的DNS

.进行访问

你可能感兴趣的:(3 Kubernetes 入门)