Kubernetes各组件关系
2023-05-08 09:13:06 11 举报
Kubernetes各组件关系、以及一些功能的对接概要,从底层了解。
作者其他创作
大纲/内容
Daemon Set Controller创建Daemon Pod与保证运行正确的Pod
Kuberneters Api Server
$ kubectl create -f kube-ui-rc.yaml$ kubectl get pods --selector k8s-app=kube-ui --namespace=kube-system$ kubectl create -f kube-ui-svc.yaml
Pod Autoscaler Controller实现Pod自动伸缩、定时获取监控数据、进行策略匹配,满足条件时自动伸缩
Persistent Volume Controller管理Persistent Volume|Claim,分配绑定释放回收
$ kubectl create -f es-controller.yaml$ kubectl get pod --selector k8s-app=elasticsearch-logging --namespace=kube-system$ kubectl create -f es-service.yaml
Cluster Monitoring
DockerKuberneters Node是容器运行节点,需要运行Docker服务,也支持Rocket服务
Kuberneters Master
新建pod分配机器
Kuberneters Schedule
Kuberneters Proxy负责为Pod创建代理服务,从Kuberneters API Server获取所有Service并创建代理,实现Service到Pod请求路由转发,实现Kuberneters层级虚拟网络转发
Fluentd作为Logging Agent需要运行在Kuberneters节点上,通过Kubelet作为static pod
Kube UI
Endpoints Controller关联Service与pod,pod变化时刷新Endpoints
ElasticSearch
Kibana
InfluxDB开源分布式时序、事件和指标数据库,同时集成Grafana提供图表展示功能
安装Open vSwitch多层虚拟交换机,通过工具k8s-ovs-ctl工具来管理
Kuberneters Controller Mannager
$ kubectl create -f skydns-rc.yaml$ kubectl get pod --selector k8s-app=kube-dns --namespace=kube-system
Etcd
Pod
$ kubectl create -f kibana-controller.yaml$ kubectl get pod --selector k8s-app=kibana-logging --namespace=kube-system$ kubectl create -f kibana-service.yaml
Heapster一个容器集群的监控收集工具,收集Kuberneters监控数据并支持导出到InfluxDB、GCE
Kuberneters 覆盖网络(Flannel、Calico、Canal、Weave Net等)
$ kubectl create -f heapster-controller.yaml$ kubectl get pod --selector k8s-app=heapster --namespace=kube-system
提供外部客户端与内部组件调用
Kuberneters Node * N
安装Cluster DNS,用于支持Kunerneter服务发现机制,通过cluster/addone/dns/skydns-rc.yaml.in新增pod,skydns-svc.yaml.in新增service
监控平台
Node Controller管理pod,定期检查pod健康状态并标识失效pod
Kuberneters Proxy(可选)
$ kubectl get pod --selector k8s-app=fluentd-logging --namespace=kube-system --output wide
$ kubectl create -f skydns-svc.yaml$ kubectl get service -l k8s-app=kube-dns --namespace=kube-system$ kubectl exec my-pod -- nslookup kuberneters.default.cluster.local
日志平台
Job Controller为Job创建一次性任务Pod
Cluster logging
安装Flannel,启动后subnet.env为不同node创建不同的Docker网桥。
Kubelet负责管理容器,从Kuberneters API Server接收Pod创建请求,启动与停止容器,并将运行结果上报
$ kubectl create -f influxdb/influxdb-grafana-controller.yaml$ kubectl get pod --selector k8s-app=influxGrafana --namespace=kube-system --output wide$ kubectl create -f influxdb/influxdb-service.yaml$ kubectl create -f influxdb/grafana-service.yaml
NameSpace Controller管理ns,定期清除无效ns、pod、service、secret
Replication Controller保证rc定义的副本数量与实际运行的pod数量一致
Service Controller为LoadBalancer类型service创建管理负载均衡器
Service Account Controller为每个NS创建Service Account|Account Secret
Deployment ControllerDeployment Controller更新将控制实现Replication Controller和Pod的更新
Kuberneters Web管理界面
0 条评论
下一页