kubernetes之一 k8s基本概念

kubernetes之一 k8s基本概念

kubernetes之二 使用minikube部署k8s本地集群

kubernetes之三 使用kubectl在k8s上部署应用

一、传统的部署、虚拟机部署和容器部署之间的区别

官方文档:What is Kubernetes

二、k8s中的基本概念

k8s官方文档:Concepts  。这篇k8s入门博客也写的不错:k8s基本概念入门

Node是Kubernetes中的工作机器,可以是虚拟机器,也可以是物理机器。
节点可以有多个pods,主节点会自动处理跨集群中节点的调度。(Pod的意思是“豆荚”,里面可以容纳多个豆子)

Kubernetes中的对象

Kubernets中的基本对象:

  • Pod:K8S中最小的调度单元是Pod。一个Pod代表了运行在集群中的进程。
  • Service
  • Volume
  • Namespace 

另外,Kubernets还包含了许多高层抽象的控制器,控制器构建依赖于基本对象。并提供了额外的功能和便捷的特性。这些控制器包括了:

  • ReplicaSet
  • Deployment
  • StatefulSet
  • DaemonSet
  • Job

节点的状态包括以下信息:
Addresses
Conditions
Capacity and Allocatable
Info

Kubernetes组件

1.Master

Master提供了集群控制面板。Master会对集群做出全局的决策,同时会监测集群事件并做出响应。

Master组件可以运行在集群中的任何机器上,但为了简单起见,启动脚本通常只会在同一台机器上启动所有的master组件,同时该机器上不会运行任何用户容器。

kube-apiserver

kube-apiserver位于master上,作为Rest API服务端,接收来自客户端和其它组件的请求,更新etcd中的数据

一般推荐部署多个kube-apiserver来提高可用性。

etcd

kubernetes依赖etcd数据库服务来记录所有节点和资源的状态。apiserver的大量功能都是通过跟etcd进行交互来实现。

kube-scheduler

kube-scheduler会监控新创建的pod,为它们分配最合适的节点来运行pod。kube-scheduler是以插件形式存在的,支持各种复杂的调度策略,确保集群的性能和高可用性。kube-scheduler在调度上会考虑服务的individual and collective resource requirements, 硬件/软件/策略限制, affinity and anti-affinity specifications, data locality, inter-workload interference and deadlines。

kube-controller-manager

运行控制器。

包括了以下控制器:

  • 节点控制器(node controller)
  • 复制控制器(replication controller)
  • endpoint控制器(endpoint controller)
  • 服务账号和token控制器(Service Account & Token Controllers)

cloud-controller-manager

2.Node组件

kubelet

kube-proxy

Container Runtime

3.Addons

DNS

Web UI (Dashboard)

Container Resource Monitoring

Cluster-level Logging

原文地址:https://www.cnblogs.com/rouqinglangzi/p/11073301.html