初识Kubernetes (K8S)
Kubernetes概述
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。
Kubernetes 组件
Master 组件:主控节点 :调度分配、控制管理、API调用、状态存储(ETCD)、健康检查、认证。
1、整个集群入口
2、提供api
3、apiserver处理的状态存储到ETCD数据库中
4、ui 都向apiserver 发送请求
master 组件包含:
1、kube-apiserver
集群的统一的入口,例如kubelet、etcd,他都是与apiserver通信的
2、kube-controller-manager
处理集群中常规的后台任务,一个资源对应一个控制器,也就是说kube-controller-manager就是管理这些控制器的。
3、kube-scheduler
主要用来调用pod,分配到某个节点上。 他会根据调度算法为新创建的Pod选择一个Node节点,可以任意部署, 可以部署在同一个节点上,也可以部署在不同的节点上。
4、etcd
分布式的存储系统,保存集群状态,例如service、pod
Node 组件:工作节点:运行容器、容器状态监控、容器网络代理、负载匀衡。
Node 节点主要包含
kubelet:
1、负责管理容器的生命周期,并实时向kube-api汇报容器、节点状态。
2、在每一个节点都运行一个kubelet代理。
kube-proxy:
1、为pod提供网络代理,给pod提供访问
docker /rocket
容器引擎、运行容器。

Kubernetes基本概念
pod :
1、它是k8s最小的部署单元
2、一个pod可以有多个容器,一个pod容器共享网络命名空间
controllers:
1、Deployment 部署无状态应用,用这个控制器
2、StatefulSet: 部署有状态应用,用这个控制器
3、DaemonSet: 确保所有Node运行同一个Pod,用这个控制器
4、Job:一次性任务 : 批处理用这个控制器
5、Cronjob: 定时任务: 定时任务,用这个控制器
这些控制器,是更高级的层次对象,来部署和管理pod
Service:
1、防止pod失联,也就是用户所有请求,service会对应的将这些请求转发给对的pod容器里面
2、定义一组pod访问策略
Label:标签,用户关联对象,方便查找。
Namespaces: 命令空间,相比较一个空间,这个空间是独立的。
Kubectl 基础命令的使用
kubectl --help 查看帮助信息
kubectl create --help 查看create命令帮助信息
| 命令 | 描述 |
|---|---|
| create | 通过文件名或标准输入创建资源 |
| expose | 将一个资源公开为一个新的Service |
| run | 在集群中运行一个特定的镜像 |
| set | 在对象上设置特定的功能 |
| get | 显示一个或多个资源 |
| explain | 文档参考资料 |
| edit | 使用默认的编辑器编辑一个资源。 |
| delete | 通过文件名、标准输入、资源名称或标签选择器来删除资源。 |
| rollout | 管理资源的发布 |
| rolling-update | 对给定的复制控制器滚动更新 |
| scale | 扩容或缩容Pod数量,Deployment、ReplicaSet、RC或Job |
| autoscale | 创建一个自动选择扩容或缩容并设置Pod数量 |
| certificate | 修改证书资源 |
| cluster-info | 显示集群信息 |
| top | 显示资源(CPU/Memory/Storage)使用。需要Heapster运行 |
| cordon | 标记节点不可调度 |
| uncordon | 标记节点可调度 |
| drain | 驱逐节点上的应用,准备下线维护 |
| taint | 修改节点taint标记 |
| describe | 显示特定资源或资源组的详细信息 |
| logs | 在一个Pod中打印一个容器日志。如果Pod只有一个容器,容器名称是可选的 |
| attach | 附加到一个运行的容器 |
| exec | 执行命令到容器 |
| port-forward | 转发一个或多个本地端口到一个pod |
| proxy | 运行一个proxy到Kubernetes API server |
| cp | 拷贝文件或目录到容器中 |
| auth | 检查授权 |
| apply | 通过文件名或标准输入对资源应用配置 |
| patch | 使用补丁修改、更新资源的字段 |
| replace | 通过文件名或标准输入替换一个资源 |
| convert | 不同的API版本之间转换配置文件 |
| label | 更新资源上的标签 |
| annotate | 更新资源上的注释 |
| completion | 用于实现kubectl工具自动补全 |
| api-versions | 打印受支持的API版本 |
| config | 修改kubeconfig文件(用于访问API,比如配置认证信息) |
| help | 所有命令帮助 |
| plugin | 运行一个命令行插件 |
| version | 打印客户端和服务版本信息 |
开开心心,上班!
快快乐乐,游玩!
及时行乐!

浙公网安备 33010602011771号