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位于master上,作为Rest API服务端,接收来自客户端和其它组件的请求,更新etcd中的数据。
一般推荐部署多个kube-apiserver来提高可用性。
②etcd
kubernetes依赖etcd数据库服务来记录所有节点和资源的状态。apiserver的大量功能都是通过跟etcd进行交互来实现。
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。
运行控制器。
包括了以下控制器:
- 节点控制器(node controller)
- 复制控制器(replication controller)
- endpoint控制器(endpoint controller)
- 服务账号和token控制器(Service Account & Token Controllers)