赞
踩
master功能:
master节点核心组件:
node功能:
node核心组件:
镜像仓库:
仓库组件:
flannel实际上是一种"覆盖网络"(overlay network),也就是将TCP数据包装在另一种网络包里面进行路由转发和通信,目前已经支持UDP、VxLAN、AWS、VPC、GCE等数据转发方式
进行路由转发,使不同主机内的容器实现互联互通
Pod可以由一个或多个容器组成(装容器的盒子)
Pod是kubernetes中最小的管理元素
Pod是一个服务多个进程的聚合单位
同一个Pod共享网络IP及权限、共享主机名称、共享存储设备
容器服务之间有关联性
启动容器的时候需要初始化或进行相关配置
Pod自创建开始至终止的时间范围称为生命周期
在这段时间内Pod处于多种不同状态,并执行相关操作
创建主容器为必须的操作,其它为可选操作(包括初始化容器、启动后钩子、存活性探测、就绪性探测、终止前钩子)
pod是k8s的基础单元,以下为一个pod资源对象的典型创建过程:
1,用户通过kubectl或其他api客户端提交pod spec给api server;
2,api server尝试着将pod对象的相关信息存入etcd中,待写入操作执行完成,api server即会返回,确认信 息至客户端;
3,api server开始反映etcd中的状态变化;
4,所有的k8s组件均使用watch机制来跟踪检查api server上的相关变动;
5, kube-scheduler通过其watch觉察到api server创建了新的pod对象但尚未绑定至任何工作节点;
6,kube-scheduler为pod对象挑选一个工作节点并将结果信息更新至api server;
7, 调度结果信息由api server更新至etcd,而且api server也开始反映此pod对象的调度结果;
8,pod被调度到目标工作节点上的kubelet尝试在当前节点上调用docker启动容器,并将容器的结果状态回 送至api server;
9,api server将pod状态信息存入etcd中;
10,在etcd确认写入操作成功完成后,api server将确认信息发送至相关的kubelet。
Pending:容器创建中,但尚未调度完成
Running:所有容器都已经被kubelet创建完成
Succeeded:所有容器都已经终止了并不会被重启
Failed :Pod中的容器至少有个退出,或者是非0状态
Unknow:无法获取到Pod对象的状态信息
子命令 | 说明 |
---|---|
help | 用于查看命令及子命令的帮助信息 |
cluster-info | 显示集群的相关配置信息 |
version | 查看服务器及客户端的版本信息 |
api-resources | 查看当前服务器上所有的资源对象 |
api-versions | 查看当前服务器上所有资源对象的版本 |
config | 管理当前节点上kubeconfig 的认证信息 |
子命令 | 说明 | 备注 |
---|---|---|
run | 创建Pod资源对象 | 一般用来创建Pod模板 |
get | 查看资源对象的状态信息 | 可选参数: -o 显示格式 |
describe | 查询资源对象的属性信息 | |
logs | 查看容器的报错信息 | 可选参数: -c 容器名称 |
default:默认的命名空间,不声明命名空间的Pod都在这里
kube-node-lease:为高可用提供心跳监测的命名空间
kube-public:公共数据,所有用户都可以读取它
kube-system:系统服务对象使用的名称空间
系统核心服务都运行在kube-system名称空间中
查看名称空间
kubectl get namespace
查看名称空间中的资源对象
kubectl -n kube-system get pods
子命令 | 说明 | 备注 |
---|---|---|
exec | 在某一个容器内执行特定的命令 | 可选参数: -c 容器名称 |
cp | 在容器和宿主机之间拷贝文件或目录 | 可选参数: -c 容器名称 |
apply | (创建/更新)资源对象 | 可选参数: -f 文件名称 |
delete | 删除资源对象 | 可选参数: -f 文件名称 |
create | 创建资源对象 | 可选参数: -f 文件名称 |
[root@master ~]# vim myhttpd.yaml --- #Yaml文件的起始标志 kind: Pod #当前创建资源的类型 apiVersion: v1 #当前资源对应的版本 metadata: #属性信息,元数据 name: myhttpd #属性信息,资源的名称 spec: #资源的特性描述(公约) terminationGracePeriodSeconds: 0 #宽限期(删除Pod不会立即删除,会等业务执行完毕) restartPolicy: Always #服务故障策略(Always、Never、OnFailure)默认Always containers: #容器资源特征描述 - name: apache #容器的名称 image: myos:httpd #启动容器使用的镜像 stdin: true #启用交互式 tty: true #分配终端 imagePullPolicy: IfNotPresent #镜像下载策略(Always、Never、IfNotPresent($=0不重启)) ports: #容器使用的端口 - protocol: TCP #容器使用的协议 containerPort: 80 #端口号
静态Pod是由kubelet守护进程直接管理的Pod,不需要apiServer服务器监管,是在节点上直接创建
kubelet监视每个静态Pod,在它奔溃后重新启动
删除静态Pod只能从创建Pod的节点上删除,master上无法删除
静态Pod配置路径:/var/lib/kubelet/config.yaml
资源对象文件路径:/etc/kubernetes/manifests
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。