一、k8s是什么?
Kubernetes是一个轻便的和可扩展的开源平台,用于管理容器化应用和服务,通过Kubernetes能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。
二、基本概念理解:
1、master:管理整个的调度流程。
1.1API Server:是master与node交互的接口,同时此接口也是面向用户的(用户指令)。
1.1.1kubectl:集群管理命令行工具集,kube指令。
1.1.2RestAPI:接口,配置文件。
1.1.3WebUI:可操作的图形化界面。
1.2Controller-Manager:内部管理控制中心,实现集群故障检测和恢复的自动化工作,负责执行各种控制器。
1.3Scheduler:收集和分析当前集群中所有Node节点的资源(内存、CPU)负载情况,然后依此分发新建的Pod到Kubernetes集群中可用的节点。
1.4ETCD:数据库,存数据以及节点的状态 。
备注:Controller-Manager+Scheduler:相互调度,基于ECTD数据库的数据,生成指令,下发给node,再记录到ETCD。
2、node:worker一般会有多个 。
2.1kubelet:master API Server与Nod的通信桥梁,节点上的pod管家。
2.2kube-proxy:创建虚拟网卡,负载均衡、路由转发。
2.3docker 必须安装docker 环境。
三、k8s的关键特性:
- 自动化装箱:在不牺牲可用性的条件下,基于容器对资源的要求和约束自动部署容器。同时,为了提高利用率和节省更多资源,将关键和最佳工作量结合在一起。
- 自愈能力:当容器失败时,会对容器进行重启;当所部署的Node节点有问题时,会对容器进行重新部署和重新调度;当容器未通过监控检查时,会关闭此容器;直到容器正常运行时,才会对外提供服务。
- 水平扩容:通过简单的命令、用户界面或基于CPU的使用情况,能够对应用进行扩容和缩容。
- 服务发现和负载均衡:开发者不需要使用额外的服务发现机制,就能够基于Kubernetes进行服务发现和负载均衡。
- 自动发布和回滚:Kubernetes能够程序化的发布应用和相关的配置。如果发布有问题,Kubernetes将能够回归发生的变更。
- 保密和配置管理:在不需要重新构建镜像的情况下,可以部署和更新保密和应用配置。
- 存储编排:自动挂接存储系统,这些存储系统可以来自于本地、公共云提供商(例如:GCP和AWS)、网络存储(例如:NFS、iSCSI、Gluster、Ceph、Cinder和Floker等)。
四、k8s的常用命令
1.查看集群信息:
kubectl cluster-info
2.查看各组件的信息:
kubectl -s http://localhost:8080 get componentstatuses
3.查看节点信息:
kubectl get nodes
4.创建文件信息:
kubectl create -f 文件名
5.查看rc和namespace:
kubectl get rc,namespace
来源:oschina
链接:https://my.oschina.net/u/4380585/blog/4941255