这篇文章给大家分享的是有关kubernetes集群的运行流程介绍。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
Kubectl:k8s是命令行端,用来发送用户的操做指令。
Authorization(认证授权机制)
API(编程接口)
API server:(背)是k8s集群的(前端接口)。各种客户端工具以及k8s的其他组件可以通过它管理k8s集群的各种资源。他提供了HTTP/HTTPS RESTful API即K8S API.
Scheduler:(调度的意思)负责决定将Pod放在那个node上运行,在调度是,会充分考虑集群的拓扑结构,,当前各个节点的负载情况,以及应对高可用,性能,数据亲和性和需求。
Controller Manager:负责管理集群的各种资源,保证资源处于预期的状态,它有多种Controller(控制器)组成,包括Replication Controller。Endpoints Controller。 Namespace Controller。 Serviceaccounts Controller等等。
第三方组件:他有可替换方案。Consul,zookeeper。
Etcd:负责保存k8s集群的配置信息和各种资源的状态信息,当数据发生变化时,etcd会快速的通知k8s相关组件。
**Pod:k8s集群的最小组成单位,一个Pod内,可以运行一个或多个容器。大多数情况下,一个Pod内只有一个Container容器。
Flannel:是k8s集群网络方案,可以保证Pod的跨主机通信。
第三方解决方案,也有替换方案。
可以查看IP地址,以及运行在那个节点之上。
[root@master ~]# kubectl get pod --all-namespaces -o wide
Node 节点:
Kubelet:他是node的agent(代理),当scheduler确定某个Node上运行Pod之后,会将Pod的具体配置信息发送给该节点的kubelet,kubelet会根据这些信息创建和运行容器,并向Master报告运行状态。
kube-proxy:负责将访问service的TCP/UDP数据流转发到后端的容器,如果有多个副本,kube-proxy会实现负载均衡。
Cadvisor:控制
//运行一个例子:
创建一个deployment资源对象,pod控制器
kubectl run test-web --image=httpd --replicas=2
查看:
[root@master ~]# kubectl get pod -o wide
[root@master ~]# kubectl get deployments.
分析各个组件的作用以及架构工作流程。
1》kubectl发送部署请求到API server
2》APIserver通知Controller Manager创建一个Deployment资源
3》Scheduler执行调度任务,将两个副本Pod分发到node01和node02上
4》node01和node2上的kubelet在各自节点上创建并运行Pod。
补充:
1.应用的配置和当前的状态信息保存在etcd中,执行kubectl get pod 是API server会从etcd中读取这些数据。
2.Flannel会为每个Pod分配一个IP,但此时没有创建Service资源,目前kube-proxy还没有参与进来。
kubectl run test-web --image=httpd --replicas=2
kubectl get nodes
19 kubectl get deployments.
20 kubectl get pod
21 kubectl get pod -o wide
22 systemctl restart kubelet.service
23 kubectl get pod -o wide
24 kubectl delete pod test-web-5b56bdff65-fwp4l
26 kubectl get pod -o wide
2.Flannel回味每个pod分配一个ip,但此时没有闯进啊service资源,目前kube-proxy还没有参与进来
日本地区的网络带宽在中国周边国家中速度是比较快的,由于日本电商直播一般都是针对日本本地或者中国、韩国等东亚国家所以在网络延时上先天是比较低的,而如果运营团队在中国大陆地区的话,由于日本带宽到中国大陆也有BGP优化线路和充足的网络带宽,尤其是出口企业直播团队基本都在中国本地的话也可以确保高速推流,轻松货卖东南亚。
以上就是kubernetes集群的运行流程的详细内容了,看完之后是否有所收获呢?