k8s
K8s组件:
Kube-apiserver: 提供k8sAPI服务的组件
Etcd: k8s存储组件,存储了k8s集群的结构及部分数据,比如Pod的副本数量,还有Pod的当前状态和希望状态
Kube-Scheduler: master节点上的调度器,负责为Pod选择或者分配合适的node节点,可以根据调度算法将Pod绑定到指定的node上
Kubelet: 在集群每个节点上运行的代理,负责管理当前node节点上属于这个集群的容器
Kube-Contorller-manager: 运行控制器,负责对节点的Pod进行状态监控,在节点出现故障时,及时进行通知和响应与处理
kube-proxy: 一个代理,可以通过代理创建一个虚拟IP,通过这个虚拟IP与Pod进行交流
Container-Runtime: k8s集群的容器运行环境,负责在节点上运行容器的组件
DNS: k8s集群负责域名解析的组件
Dashboard: k8s里负责提供一个web界面来对k8s集群进行管理的组件
K8s的资源对象:
Pod: 负责创建、管理、可部署的、可水平扩展的、可创建副本的最小计算单元,相当于一个逻辑主机。
Service: Service是一个抽象访问层,能够将一组Pods以一定的Policy暴露出来响应服务请求,同时实现请求在多个Pods之间的负载均衡。
ReplicaSet(RS): 副本控制器,保证始终有指定数量的
Deployment: 一个Deployment就是Kubernetes中运行着的一个应用,可能由一个或多个Pods组成,其中的每个Pod就是一个应用副本,相当于一个可以拥有多个副本逻辑应用。
Pod的状态:
Pending: 等待中,挂起
Running: 运行中
Failed: 失败,异常终止
Succeeded: 正常终止
Unknown: 未知状态
K8s常用命令:
Kubectl create -f aaa.yaml 根据文件或者输入来创建资源
Kubectl delete -f aaa.yaml 根据文件删除资源
Kubectl delete 名称 根据名称删除资源
Kubectl get all/pod/node/svc/ns/rs -o wide获取资源信息
Kubectl version 打印客户端和服务端的版本信息
Kubectl logs pod -c 容器名称 在一个pod中打印一 个容器的日志
Kubectl exec -it(后台运行) Pod 进入容器进行交互
Kubectl attach pod -c 容器名称 连接到一个正在运行的容器
Kubectl cp 拷贝文件或者目录到pod容器里面,用于pod和外部文件交换
Kubectl run nginx –replicas(副本)=3 –-libels(标签)=”app=nginx” –image(镜像)=nginx:1.10 –-port(端口)=80
在集群中创建并运行一个或者多个容器镜像
Kubectl set resources 资源类型 容器名称 -c =资源名称 设置资源范围限制
Kubectl set selector 设置资源选择器
kubectl set image 更新现有资源的容器镜像
Kubectl explain rs 显示资源文档信息
Kubectl top pod 查看资源占用
Kubectl cluster-info 查看集群信息
Kubectl cordon node 标记节点不可调度
Kubectl uncordon 标记节点可以调度
Kubectl drain 用于维护期间排除节点