初识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 打印客户端和服务版本信息
posted @ 2020-04-09 09:18  菜菜920  阅读(182)  评论(0)    收藏  举报