概念:
Kubernetes (k8s)是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,方便进行声明式配置和自动化。Kubernetes 拥有一个庞大且快速增长的生态系统,其服务、支持和工具的使用范围广泛。
官方文档:Kubernetes 文档 | Kubernetes
功能:
自动装箱 基于容器对应用运行环境的资源配置要求自动部署应用 容器 自我修复(自愈能力) 当容器失败时,会对容器进行重启 当所部署的Node节点有问题时,会对容器进行重新部 署和重新调度 当容器未通过监控检查时,会关闭此容器 直到容器正常运行时,才会对外提供服务 水平扩展 通过简单的命令、用户UI界面或基于CPU等资源使用情 况,对应用容器进行规模扩大或规模剪裁 服务发现 用户不需要使用额外的服务发现机制,就能够基于 Kubernetes自身能力实现服务发现和负载均衡 滚动更新 可以根据应用的变化,对应用容器运行的应用,进行一 次性或批量式更新 版本回退 可以根据应用部署情况,对应用容器运行的应用,进行 历史版本即时回退密钥和配置管理 在不需要重新构建镜像的情况下,可以部署和更新密钥 和应用配置,类似热部署。 存储编排 自动实现存储系统挂载及应用,特别对有状态应用实现 数据持久化非常重要 存储系统可以来自于本地目录、网络存储(NFS、 Gluster、Ceph、Cinder等)、公共云存储服务等
核心架构:
Master可以通过kube-scheduler(调度器)对资源情况进行判断然后对一个或多个Nodes进行部署。
kube-controller-manager会监控资源情况。
kube-apiserver是k8s的请求入口服务,提供操作服务。
etcd是作为分布式键值存储系统,用于保存集群的配置数据、状态和元数据。
kubelet是Worker Node的监视器,以及与Master Node的通讯器
kube-proxy是K8S的网络代理,负责Node在K8S的网络通讯,以及对外部网络流量的负载均衡。
Container Runtime,是一个Worker Node的运行环境
kubectl命令:
也可输入kubectl命令查看
kubectl get nodes 查看结点
kubectl get pod 查看PodPod (Pod是k8s系统中可以创建和管理的最小单元。它是由一个或多个容器组成的,这些容器共享网络、存储等资源。)
在worker节点如何使用kubectl命令管理k8s集群?
#准备集群管理配置文件
[root@work1 ~]# mkdir .kube
[root@work1 ~]# scp
master1:/root/.kube/config .kube/
#使用命令验证
[root@work1 ~]# kubectl get nodes