kubernetes 概念总结

k8s 概念总结


MASTER节点

  • Kubernetes API Server:提供 REST接口服务,是所有资源增删改查、集群控制的统一入口。
  • kubernetes Controller Manager:所有资源对象的自动化控制中心。
  • kubernetes Scheduler:负责资源调度。
  • ETCD:数据保存

NODE 节点

  • Kubelet :负责Pod对应容器的创建,启停等任务。与master节点密切协作。
  • kube-proxy:实现kubernetesservice通信、负载均衡等。
  • Docker Engine: 本机容器管理。

资源


  1. POD
    容器组,由pause容器和一个或多个用户容器组成,用户容器共享pause容器的IP、volume。
    有两种类型的pod:普通的pod和静态pod、普通pod存储在etcd中,被调度到节点运行,静态pod存在某个具体node的一个具体文件中。

  2. RC
    replication controller,它定义了一个期望的场景:
    ::replicas:pod期待的副本数量 。
    ::selector:用于筛选目标pod的label selector。
    ::template:用于创建pod的模板。当副本数量小于预期值时,用模板创建pod
    replica set 下一代RC,支持基于集合的selector,RC仅支持等式的selector

  3. Deployment
    类似于RC、相似度90%。相当于openshift 的DC。

  4. Service
    ::service 定义了一个服务的访问入口地址,通过label selector与后端pod无缝对接。
    ::通过节点上的kube-proxy进程实现软件负载均衡器,把service请求发送到后端pod。
    ::服务发现:每个service生成一些对应的环境变量,在每个pod启动时自动注入环境变量。
    ::外部系统访问service:通过NodePort把service 端口暴露到node上。

  5. Volume
    ::volume:是pod中能够被多个容器访问的共享目录,定义在pod上,属于计算资源的一部分。
    ::persistent volume:独立的网络存储资源,不属于任何node,但都可以访问。
    ::PVC:如果某个pod想申请pv,首先需要定义一个pvc,persistent volume claim。

  6. Horizontal Pod Autoscaler
    横向自动扩容缩容,两种方式实现pod负载度量指标,实现自动扩容:
    ::CPUUtilizationPercentage
    ::应用程序自定义的度量指标

  7. ConfigMap
    供容器使用的配置文件,生成容器内的环境变量或者挂载为容器内部的文件或目录。

  8. DaemonSet
    适用于:
    每个node上运行的一个glusterFS或Ceph存储
    每个node上运行的日志采集系统
    每个node上运行的一个监控系统


SERVICE详解


1、创建服务:

  • kubectl expose rc rcname
  • yaml文件,通过 kubectl create -f name.yaml

2、多端口服务,多协议服务

  ports:
    - name: web
      port: 80
      protocol: TCP
      targetPort: 8080
    - name: dns-udp
      port: 8081
      protocol: UDP
      targetPort: 8081 

3、外部服务
通过无 label selector的服务,然后手动创建一个和该sevice同名的endpoint,用于指向后端访问地址。
endpoint文件如下:

apiVersion: v1
kind: Endpoints
metadata:
  labels:
    app: straw
  name: straw
subsets:
- addresses:
  - ip: 10.130.3.242
  ports:
  - name: straw
    port: 8001
    protocol: TCP

4、负载均衡
service 默认提供负载均衡功能,开发人员也可以自己控制负载均衡策略,headless service(无头服务),即不为service设置cluster ip入口地址,仅通过 label selector将后端的pod列表返回给client。

5、集群外部访问pod或service

  • 通过设置容器级别的hostport,将容器应用的端口号映射到物理机
  • 通过设置pod级别的hostNetwork=true,该pod中的所有容器的端口号都将被直接映射到物理机上。
  • 将service的端口号映射到物理机,nodePort方式和LoadBalancer两种方式

6、DNS服务搭建
k8s提供的虚拟DNS服务名为skydns

  • etcd:dns存储
  • kube2sky:将k8s master 中的服务注册到etcd
  • skyDNS:提供DNS域名解析服务。
  • healthz:提供skyDNS服务的健康检查。

网络详解


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值