第五篇:Kubernetes Cluster架构

Kubernetes Cluster由Master和Node组成,节点上运行着若干Kubernetes服务。

1、Master节点

Master是Kubernetes Cluster的大脑,运行着的Daemon服务包括kube-apiserver、kube-scheduler、kube-controller-manager、etcd和Pod网络(例如fiannel),如下图所示:
在这里插入图片描述

2、Node节点

Node是Pod运行的地方,Kubernetes支持Docker、rkt等容器Runtime。Node上运行的Kubernetes组件有kubelet、kube-proxy和Pod网络(例如flanne),如下图:
在这里插入图片描述

3、用例子把他们串起来

mengqp@mengqp-VirtualBox-01:~$ kubectl run httpd-app --image=httpd --replicas=2
kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/httpd-app created
mengqp@mengqp-VirtualBox-01:~$ kubectl get deployment
NAME        READY   UP-TO-DATE   AVAILABLE   AGE
httpd-app   2/2     2            2           71s
mengqp@mengqp-VirtualBox-01:~$ kubectl get pod
NAME                        READY   STATUS    RESTARTS   AGE
httpd-app-c77bb8b47-4m6l9   1/1     Running   0          85s
httpd-app-c77bb8b47-5s27z   1/1     Running   0          85s
mengqp@mengqp-VirtualBox-01:~$ kubectl get pod -o wide
NAME                        READY   STATUS    RESTARTS   AGE    IP           NODE                   NOMINATED NODE   READINESS GATES
httpd-app-c77bb8b47-4m6l9   1/1     Running   0          114s   10.244.1.2   mengqp-virtualbox-02   <none>           <none>
httpd-app-c77bb8b47-5s27z   1/1     Running   0          114s   10.244.2.2   mengqp-virtualbox-03   <none>           <none>
mengqp@mengqp-VirtualBox-01:~$

Kubernetes 部署了 deployment httpd-app,有两个副本Pod,分别运行在k8s-node1和k8s-node2。
详细讨论整个部署过程如下:
1、kubectl发送部署请求到API Server
2、API Server 通知 Controller Manager创建一个deployment资源
3、Scheduler 执行调度任务,将两个副本pod分发到k8s-node1和k8s-node2
4、k8s-node1和k8s-node2上的kubectl在各自的节点上创建并运行pod

补充:
1、应用的配置和当前状态信息保存在etcd中,执行kubectl get pod时API Server会从etcd中读取这些数据
2、flannel会为每个pod都分配IP。因为没有创建service,所以目前kube-proxy还没有参与进来。

发布了47 篇原创文章 · 获赞 0 · 访问量 1165

猜你喜欢

转载自blog.csdn.net/weixin_43103748/article/details/104806887
今日推荐