10分钟带你了解k8s基础(kubernetes基础概念总结)
kubernetes基础概念总结
简介
kubernetes
是由google主导开发的开源容器管理 平台,提供多主机集群,容器编排,容器伸缩等功能
基础组件介绍
docker
容器运行环境的一种实现,封装底层容器
etcd
etcd
是kubernetes
集群用来存储集群相关数据的数据仓库
master节点组件
master
节点是主集群中的大脑,负责处理外部的api请求,分配调度任务以及管理容器的副本数等
kube-apiserver
-
kubernetes
对外的服务入口,其他组件通信的纽带,服务无状态,可水平扩容
kube-scheduler
- 负责pod的任务调度
kube-controller-manager
- 处理
node
节点当机情况 - 负责保证pod的副本数
- 管理endpoint,连接service和pod
- 为新namespace创建默认api token和accounts
node节点组件
node
节点负责干活,执行master
节点指派的相关任务
kubelet
- 负责启动停止容器,保证容器运行。
kube-proxy
- 负责根据service生成网络规则,生成路由规则
组件通信
架构图

组件间的通信全依赖于kube-apiserver
,其他组件通过http协议与kube-apiserver
交互。
当使用kubectl或者直接调用kube-apiserver
提供的api请求创建pod里和service时工作流程如下:
-
kube-apiserver
把相关的pod和service配置存储到etcd
中 -
kube-scheduler
从kube-apiserver
获取到相关pod的配置,根据集群中的资源和条件限制把pod调度到相应的node
节点上 -
kube-controller-manager
从kube-apiserver
获取到相关pod和service的配置,定期检查pod的状态,保证有用户配置的足够数量的pod副本在运行,生成service到pod的规则关系。 -
kubelet
从kube-apiserver
获取分配到本节点的相关pod配置,在本地启动容器并定期检查返回容器状态 -
kube-proxy
从kube-apiserver
获取service到pod的规则,在本节点维护iptable
或者ipvs
相关路由规则
基础概念
pod
-
kubernetes
的最小调度单元,一个pod中可以有多个容器,多个容器共享网络和存储卷
service
-
kubernetes
抽象出来一个概念,可以理解为负载均衡器,后端接pod
cluster ip
- service在集群中的ip,相当负载均衡器的ip
ingress
- 对集群外部暴露集群内部service的一种方式
nodeport
- 对集群外部暴露服务的第二种方式,跟随service配置,让集群中的
node
节点都监听相应的端口,可以通过node
节点访问集群内部service
loadbalancer
- 对集群外部暴露集群内部service的一种方式,一般只有在云平台才能使用
deployment
- 封装了
pod/replicaset
,可以实现指定pod副本数量,滚动更新,扩容pod,一般一个应用(服务)一个deployment
statefullSet
- 相当于有状态服务的
deployment
,重启后,主机名和pod的名称不会改变
daemonSet
- 在每个
node
节点都需要运行的pod可以使用daemonSet
job
- 一次性任务
cronJob
- 类似于
crontab
定时执行任务
dns
-
kube-dns/coredns
提供集群中的dns服务,可以解析service到cluster ip
,实现服务发现
pv
- 管理员用来提前创建好的存储空间,供用户申请使用
pvc
- 用户用来申请存储空间
storageClass
- 定义存储类供pvc使用,当用户通过pvc并指定
storageClass
请求pv时kubernetes
可以根据storageClass
动态创建pv
排错技巧
查看日志
查看pod日志
- kubectl logs pod-name
查看事件
- kubectl describe pod-name
查看docker日志
-
通过
kubectl get pod -o wide
找到容器运行的node
节点 -
在
node
节点上通过docker ps -a
找到出错的容器 -
docker logs container-id
查看kubelet及其他组件日志
- journalctl -u kubelet
本文转自掘金- 10分钟带你了解k8s基础(kubernetes基础概念总结)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
超适合小项目的 K8S 部署策略
Kubernetes 的稳健性、可靠性使它成为现阶段最流行的云 原生技术之一,但也有不少用户反映, Kubernetes 技术学习起来十分复杂,只适用于大集群且成本较高。这篇文章将打破你的观念,教你在小型项目中部署 Kubernetes 集群。 选择 K8S 部署小型集群的三大理由 理由一:花费时间少 在部署小型集群之前,你需要思考以下这些问题: 应该如何部署应用程序?(仅仅 rsync 到服务器?) 依赖关系是怎么样的?(如果利用 python 或 ruby,你必须在服务器上安装它们!) 手动运行命令?(如果以 nohup 的方式在后台运行二进制文件这可能不是最好的选择,但去配置路由服务,是否还需要学习 systemd?) 如何通过不同域名或 HTTP 路径运行多个应用程序?(你可能需要设置 haproxy 或 Nginx!) 当更新应用程序后应该如何推出新变化?(停止服务、部署代码、重启服务?如何避免停机?) 如果搞砸了部署怎么办?有什么方法可以回滚? 应用程序是否需要使用其他服务?又该如何配置这些服务?(如:redis) 以上这些问题很有可能在你部署小型集群时出现,但 Kuber...
-
下一篇
k8s与caas--容器云caas平台的落地实践
前言 在移动互联网时代,新的技术需要新技术支持环境、新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化。容器将成为新一代应用的标准交付件,容器云将帮助企业用户构建研发流程和云平台基础设施。缩短应用向云端交付的周期,降低运营门槛。加速向互联网技术和业务的双转型。容器云将对接各类代码托管库,实现自动化持续集成 和DOCKER镜像构建,为新一代应用交付和开发运维一体化奠定了基础。容器云将支持应用的一键式部署交付,提供负载均衡,私有域名绑定,性能监控等应用生命周期管理服务。是微服务架构,轻量级应用部署和运维的理想平台。未来IT界会以容器化应用作为交付的标准。容器云为开发者和企业提供了一个快速构建、集成、部署、运行容器化应用的平台,从而提高应用开发的迭代效率,简化运维环节,降低运维成本。 对于企业来说,容器云价值体现在: 作为内部技术纽带,多应用统一部署平台,提高开发效率,减少运维成本。 平台产品化过程中,投入少且产出价值高。可依托现有的IaaS平台资源,相对于传统的承接项目获益的方式,容器云会积累宝贵的客户资源及数据资源,这些无形资产最终会为公司赢得巨大战略价值。 增加云企...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Dcoker安装(在线仓库),最新的服务器搭配容器使用
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- MySQL数据库在高并发下的优化方案
- SpringBoot2配置默认Tomcat设置,开启更多高级功能