首页 > Kubernetes入门

Kubernetes入门

简介

  它是一个全新的基于容器技术的分布式解决方案,基于强大的自动化机制解决传统系统架构中负载均衡和实施部署的问题,从而节省了30%开发成本,其次具有完备的集群能力,

包括服务注册、服务发现、故障的发现和修复、服务滚动升级、在线扩容、健康监测等能力。使用kubernetes可以是开发人员更多精力在业务实现上,同时全面的拥抱微服务架构

 

架构

 

基本概念和术语

1、master 集群的控制节点。

每个kubernetes集群都需要有个master节点负责整个集群的管理和控制。mater节点包括一组关键进程:

  • kube-apiserver 资源增删改查操作的入口,门卫
  • kube-controller-manage 所有资源的自动化控制中心,大总管
  • kube-schedule 负责资源的调度,调度室

 

2、node 集群的负载节点

每个node都会被master分配一定的工作负载(容器),当node停止运行后,master将容器调度到其他node,node节点包括一组关键进程:

  • kubelet 负责pod对应容器的创建、启停任务
  • kube-proxy 实现service通信和负载均衡
  • docker engine docker引擎负责本机的容器的创建和管理

常用命令

查看集群节点

kubectl get nodes

查看节点详细信息

kubectl describe node xxx

3、pod 资源调用基本单位

 

每个pod包含一个根容器(Pause) 容器和其他若干的业务容器,其中根容器的状态代表了容器整体的状态,业务容器共享Pause容器的IP和挂在的Volumn 。集群中每个pod都分配了唯一的IP,称pod ip , 一个pod里的多个容器共享Pod IP地址。

pod某个容器停止,k8s检测并重启该pod中的所有容器,所以适合一个POD中存放一个业务相关的容器

 

 

(1) Replication Controller (rc) 副本的数量在任何时刻都达到期望值

rc定义包括如下几个部分:

    • pod期待的副本数
    • 用于筛选目标Pod的label Selector
    • 副本数小于期望数量时候,创建新的副本‘

 

例子:定义了在kubenetes集群中 tier: frontend的副本只有一个

 

 

(2)Replication Set (rs) 下一代的RC

与RC区别是RS支持集合类型的Label Selector,而rc只支持基于等式的Label Selector。其他特点类型。

 

(3)Label和Label Selector

Label和Label Selector概念,kubernetes可以为对应的资源(pod,rc,service,deployment)设置key=value形式的label,简单理解就是分类。同时label selector可以根据指定的label与资源进行管理。例如service可以根据label selector选择具有对应label的pod进行负载均衡。label selector分为等式形式(env=test)和集合形式(env not in[test,dev])

 

 

(4)Deployment 在rs的基础上增加服务启动状态的控制和统计

在rc的基础上进行了一次升级,更好解决了服务编排问题。可以知道当前POD的“部署的进度”

常用命令

创建Deployment

kubectl create -f tomcat-deployment.yaml

查看信息’

kubectl get deployments

 

(5)service kubernetes的核心资源对象,POD RC RS等资源对象都是为service提供服务

kubernetes里面每个service就是我们所说的微服务。

 

 

    • rc的作用是保证Service的服务能力和服务质量始终处于预期的biaozhun
    • service与后端的副本集群通过label selector做负载均衡

service一旦创建,kubernetes就会自动为它分配一个可用的Cluster IP,并且整个service的生命周期内不会改变,service name 和 service ip DNS映射解决了服务发现问题

常用命令

查看service

kubectl get svc -n XXX

创建service

kubectl create -f xxx

 

转载于:https://www.cnblogs.com/mxmbk/p/9277554.html

更多相关:

  • 这段时间主要是学习了对容器的操作,包括:容器的状态:start,stop,restart,rename,pause,unpause,rm,attach,exec,kill,logs;还学习了对容器的资源进行限制的操作,包括:CPU(- c),内存(-m   --memory-swap),blkio IO(--device-weight...

  • 什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器。很简单,容器就是保存其它对象的对象,当然这是一个朴素的理解,这种“对象”还包含了一系列处理“其它对象”的方法,因为这些方法在程序的设计上会经常被用到,所以容器也体现...

  • 上一节我们讨论了 Kubernetes 架构 Master 上运行的服务,本节讨论 Node 节点。 Node 是 Pod 运行的地方,Kubernetes 支持 Docker、rkt 等容器 Runtime。 Node上运行的 Kubernetes 组件有 kubelet、kube-proxy 和 Pod 网络(例如 flannel...

  • 使用sudo gem install cocoapods更新提示: ERROR: While executing gem ... (Errno::EPERM) Operation not permitted 改为:sudo gem install -n /usr/local/bin cocoapods --pre刷刷刷完成更新。但是...

  • pod install 换成 pod install --verbose --no-repo-update pod update 换成 pod update --verbose --no-repo-update这是因为:目前,cocoaPods正在被墙中...... 转载于:https://www.cnblogs.com/hell...