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), apiserver与kube-proxy(一套CA)和kubelet(一套CA)通信
都是通过CA证书点对点通信 5套CA etcd内部一套CA, apiserver与apiserver之间一套CA
pod管理器: ReplicationController 副本控制器
ReplicaSet 副本集控制器
Deployment 管理无状态应用
StatefulSet 无状态副本集
DaemonSet 有状态副本集
Job 有作业
cronjob 周期性计划作业
HPA 水平自动伸宿 HorizonAutoPodscaler
pod:有label标签 pod控制器通过pod标签label来识别pod kv类型的元数据 app:nginx label selector标签选择器
service :是调度器 是iptables的 dnat规则 服务划线 客户端通过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 叠加网络
pod与service之间通信: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