kubernetes理论

kubernetes特性:自动装箱,自我修复,自动水平扩展,自动服务发现,服务自动负载均衡,自动发布和回滚

秘钥和配置管理,存储编排,批量处理执行  

kubernetes架构:master/node

master:最多3个 用途:控制

组件:apiserver 接收处理请求

                     scheduler  调度器 调度处理请求 调取pod

                     pod控制器(loop探测) 确保pod健康

     控制器管理器 controller_management   确保控制器健康

安装组件:API server,Schduler,Controller_Manager,etcd

node:n个 用途:worker 计算 运行pod

安装组件:kublet   k8s集群代理

         docker

         kube-proxy apiserver通信 pod改变发送数据给apiserver 修改serivce规则 apiserver存放集群中各对象的状态信息 存放在共享存储etcd中存放键值对

etcd的客户端是apiserver(一套CA,   apiserverkube-proxy(一套CA)和kubelet(一套CA)通信

都是通过CA证书点对点通信 5CA   etcd内部一套CA,  apiserverapiserver之间一套CA

pod管理器: ReplicationController 副本控制器

ReplicaSet 副本集控制器

Deployment 管理无状态应用

StatefulSet 无状态副本集

DaemonSet 有状态副本集

Job 有作业

cronjob 周期性计划作业

HPA 水平自动伸宿 HorizonAutoPodscaler

pod:有label标签  pod控制器通过pod标签label来识别pod  kv类型的元数据 app:nginx    label selector标签选择器

service :是调度器 是iptablesdnat规则 服务划线 客户端通过service访问pod服务名label, service名称相当于服务名称

AddOns:附件 dns_core 动态改变 以后直接访问集群中服务名称即可访问pod dns也是一个pod   iptables的负载均衡交给ipvs

NMT  T:容器 T的客户端N  M的客户端是T中的程序

网络模型:

node网络

service网络(虚拟 iptables规则)( 也称集群网络)

 pod网络(同一个pod内多个容器通信:lo

pod网络间的通信 Overlay Network 叠加网络

podservice之间通信:iptables规则

kube-proxy 管理service pod发送改变,通知service改变规则

CNI容器网络接口

常见:flannel网络配置 属于叠加网络  隔离:namespace --iptable策略实现 简单

    calico:网络配置 三层隧道网络,网络策略 复杂

    canel:flannel网络配置+calico网络策略

kubeadm

master,nodes; 安装kublet,kubeadm,docker

master:kubeadm init

nodes:kubeadm join

下载 Server Binaries 

kubectl get pods -n kube-system 指定名称空间

kubectl get namespace 查看已有的名称空间

kubectl get pods -n kube-system -o wide