Kubernates学习导图(一)——基础

一、基础
systemctl start etcd/ docker/ kube-apiserver/  kube-controller-manager/ kubescheduler/kubelet/kube-proxy
kubectl  create -f  【*.yaml】
kubectl  get  namespaces/ rc /pods / svc(services) / nodes / endpoints /ConfigMaps
kubectl describe  node / pod 【name】
kubectl scale  rc redic-slave --replicas=3

跟踪对比edtc“资源期望值状态”和当前环境中“实际资源状态”实现自动控制、纠错功能
resource:                       pods \ replicationcontrollers \ services \ 
            (apps)               deployments \ replicasets \ statefulsets \ daemonsets \ endpoints \ConfigMap
            (autoscaling)     horizontalpodautoscalers \ 
            (batch)              jobs \crontjobs

Service: (唯一名字、唯一虚拟IP(ClusterIp , ServiceIp,  VIP)和端口号、远程服务能力、映射到了容器应用上)

二、概念
1、master  (API Server资源管理\   Controller Mangaer 监控管理自动化控制\ Schedule调度 \ etcd)
2、node(kubelet容器pod状态汇报注册\  kube-proxy通信负载均衡 \  DockerEngin)
3、pod (根容器pause + 容器组):文件共享pod IP、业务通信、业务存亡周期管理 (资源EVENT 探针呢检测)。
   普通pod绑定到node,直到node宕机再更换。docker容器启动。
   容器组在spec.containers中声明。
   pod IP + containerPort  = endPoint
   pod Volume 被各个容器挂载到自己的文件系统中
4、Label:   release 、environment、tier、partition、track
     定义:  name =(!=)  ****   name in(not in)  (***,&&&)
     Kube-controller通过RC上定义的Label Select来帅选监控 Pod数量 、
     kube-Proxy通过service上的Label selector选择POD负载均衡
     kube-schedule通过Node定义的Label及pod 定义 NodeSelector, 实现POd定向调度
5、RC定义期望场景(副本数、Label Selector、Pod模板)Replica Set
     create  -->    Controller Manager监控数量
     新镜像平滑升级方式: (每次停止一个旧的    滚动升级)
     被 ReplicaSet   Deployment资源替换
6、Deployment内部使用Replica Set相当于RC升级(副本创建、部署状态、更新POD、回滚挂起恢复)
7、Service :核心资源对象:即微服务架构中的-个“微服务”,服务之间TCP/IP通信
    Service提供一个服务访问入口地址,通过其他一系列POD定义的Label Selector无缝对接服务,RC来控制服务正常运行
    对内:
      服务发现1:分配了一个虚拟IP地址ClusterIp(全局唯一),而非负载均衡器地址  ,端口访问 -->  多端口 
      服务发现2-多端口:service(唯一ClsoterIP \名字), 环境变量ip + port不方便, 直接DNS系统使用服务名链接
    NodeIp :  节点IP,物理网卡ip地址,集群外部,[集群]间使用的(TCP/IP)互访问方式。
    PodIp:   docker网桥分配的,虚拟的二层网络,集群内部,[Pod]间的(容器)互访问方式,访问流量最终流经nodeIp
    ClusterIp:  虚拟的,仅作用于Service,由k8s管理分配,不具有Tcp/ip通信基础无法被ping,属于集群内封闭空间通信,外部通信需配置。
    服务发现对外方式:
        采用NodePort方式(对外),负载均衡器(均衡),
8、Volume:存在POD上的计算资源。被多个容器访问的共享目录,概念与docker中类似不等价。
    不同处: 被一个POd多个容器挂载, 生命周期比docker中定义长, 支持多类型(GlusterFS\ Ceph)分布式文件系统。
    功能:共享文件、容器数据映射到磁盘、文件写入网络中。容器配置文件集中化定义管理ConfigMap。
    使用: 在Pod上声明,Volumes,再容器中挂载到特定的目录
    EmptyDir (临时、pod间共享、永久删除) 、hostPath(主机文件目录,宿主docker系统) 、NFS(NFS Server,网络文件系统)
    gcePersistentDisk(永久保存、永久磁盘GCE虚拟机)、awsElasicBlockStore(EBSVolume,AWS EC2)、其他方式(系统管理、系统源不同)
9、Persistent Volume(PV  ):网络存储,只能是网络存储,每个node都可访问,独立于POD外
     (GCE Persistent Disks\ NFS\RBD \iSCSCI\AWS \ ElasticBlockStore\ GlusterFS)
    PV定义: (capacity、accessModes 【ReadWriteOnce/ReadOnlyMany/ReadWriteMany】、nfs) 
    PV状态: Available / Bound(至PVC) / Released(对应PVC删除、pv还在) / Failed(PV回收失败)
    Pod使用pv:定义PVC ,  然后在pod--volumes-persistentVolumeClaim中引入定义的PVC

10、Namespace : 多租户逻辑隔离 、不同项目小组 / 用户组、可共享资源分别被管理。
       启动后有个default 命名空间, 资源CPU、内存等使用量的租户隔离配额

11、Annotation:类似Label的key-value形式定义。
      Label:  严格命名规则、定义元数据用于Label Selector 
      Annotation:用户附件信息(build\release\Docker镜像、时间戳、release Id\PR号、镜像hash、dockerregistry地址)(日志库、监控库、分析库 | 程序调试工具、版本号| 团队信息)

12、总结: 核心组件外, 辅助资源对象: LimitRange\ rresourceQuota |  Binding  \ Event 等

你可能感兴趣的:(学习)