service(服务)特征
在Kubernetes中,service(服务)是分布式集群架构的核心,一个service拥有以下特征:
- 1.拥有唯一指定的名字(mysql-server)
- 2.拥有一个虚拟IP(ClusterIP,ServiceIP或VIP)和端口号.
- 3.能够提供某种远程服务能力.
- 4.被映射到了提供这种服务能力的一组容器应用上.
service与pod的关系
一个服务包装到container(容器)中进行隔离,每个service利用标签选择器和pod关联,如下图,容器1,2,3,4的选择条件为name=mysql,这样容器里面的服务就作用与标签为mysql的所有pod.
image.png
Kubernetes集群
k8s集群由一个master和N个node节点构成,其中master里面的apiserver,controller-manage,scheduler进程负责整个集群的资源管理,Pod调度,弹性伸缩,安全控制,系统监控和纠错等功能,完全全自动.Node为工作节点,Node上最小的运行单元是Pod,kubelet,proxy进程负责Pod的创建,启动,监控,重启,销毁,以及实现软件模式的负载均衡.
image.png
Kubernetes单机安装
CentOS7,64位
image.png
启动mysql
创建RC定义文件:mysql-rc.yaml
image.png
执行
kubectl create -f mysql-rc.yaml
创建一个与之关联的Kubernetes Service----Mysql的定义文件(Mysql-svc.yaml)
启动tomcat应用
创建RC定义文件:myweb-rc.yaml
image.png
执行
kubectl create -f myweb-rc.yaml
创建service(myweb-svc.yaml)
image.png
type为NodePort模式表示外网访问模式,nodePort为30001表示本机浏览器可以通过30001这个端口访问myweb
kubectl create -f myweb-svc.yaml
概念和术语
- Master kubernetes集群的主节点,负责集群的管理与控制.
- Node 集群中的其他节点称为Node节点,早期称为Minion(奴才),负载与异常转移依赖master的指挥.
- Pod 由Pause(根)容器和业务容器构成,每个pod都分配了唯一IP,不同主机pod之间可以通信
image.png
pod及周边对象
- Label(标签) 通过Label来实现多维度的资源分组管理.
Label Selector相当于sql语句,controller进行通过RC文件label控制pod数量,service通过label标签进行负载均衡,scheduler通过Node的标签进行任务调度.
label selector的作用范围
- RC(replication controller)
image.png
- Deployment RC的升级,可以随时知道当前部署的pod进度.
- Horizontal Pod Autoscaler(HPA) 追踪分析Pod的负载变化情况,针对性的调整目标pod的副本数.
- Service(服务)
Pod,RC,Service关系
- IP
Node IP:真实存在,TCP/IP服务,必须进行Node IP进行通信.
Pod IP:根据Docker Engine的docker0网桥的IP进行通信,一个虚拟的二层网络,可以实现不同的node的pod通信
Cluster IP:由kubernetes管理和分配,无法直接访问.
- Volume(存储卷) 是Pod中能够被多个容器访问的共享目录.
- Persistent Volume 网络存储
- Namespace 实现多租户的资源隔离
- Annotation 定义任意的附加信息,用于查找
网友评论