当前位置: 首页 > news >正文

k8s基本介绍

Kubernetes, also known as K8s, is an open source system for automating deployment, scaling, and management of containerized applications.

Kubernetes,也称为k8,是一个用于自动化部署、扩展和管理容器化应用程序的开源系统。

                     使用go语言编写https://github.com/kubernetes/kubernetes

                     目前最高版本是v1.30    https://kubernetes.io/zh-cn/


Google 15 年生产环境的运维经验-->borg系统 不是开源的

借鉴borg系统 ,使用go语言开发了k8s

针对k8s方向的技术,统称为云原生技术 ---》CNCF --》云原生计算基金会

v1.23 前版本都默认使用docker作为容器运行时软件

v1.24 后默认使用containerd作为容器运行时软件,边缘化docker,但是还是支持docker

API 服务器是 Kubernetes 控制平面的组件, 该组件负责公开了 Kubernetes API,负责处理接受请求的工作。 API 服务器是 Kubernetes 控制平面的前端。6443端口 k8s集群入口


- `etcd` 保存了整个集群的状态;一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。

- `kube-apiserver` 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API 注册和发现等机制;

- `kube-controller-manager` 负责维护集群核心对象的状态,比如故障检测、自动扩展、滚动更新等;

- `kube-scheduler` 负责资源的调度,按照预定的调度策略将 Pod 调度到相应的机器上;

- `kubelet` 负责维持容器的生命周期,同时也负责 Volume(CVI)和网络(CNI)的管理;调用docker去启动需要的容器,单独的程序,不在容器而在宿主机运行

- `Container runtime` 负责镜像管理以及 Pod 和容器的真正运行(CRI),默认的容器运行时为 Docker;

- `kube-proxy` 负责为 Service 提供 cluster 内部的服务发现和负载均衡;

-‘kube-proxy’单独的Pod 在宿主机运行,网络代理,网络数据的进去和出去(snat,dnat),负载均衡(ipvs,iptables)

DNS:coredns集群里进行域名解析的

网络通信插件:calico(大规模),flannel(小规模),terway


1.docker和k8s的关系?

       容器技术:

              底层技术: linux 内核实现的  --》lxc linux的容器技术

                     命名空间--》隔离

                     cgroup --》资源的控制,例如:cpu,内存,磁盘IO

LXC,就是Linux容器虚拟技术(Linux container)

Core OS --》Rocket

docker --》docker ---》一家独大 --》制定标准

容器技术的优势:

       1.资源消耗少  启动速度  .扩展非常方便   管理非常方便

巨头: Google ,ibm,redhat等

cncf 云原生基金会--》google,微软、Red Hat、IBM、Docker、CoreOS、 Mesosphere和Saltstack 等公司,相继加入K8S。     VMware、HP、Intel等公司,也陆续加入。

K8S,就是基于容器的集群管理平台,它的全称,是kubernetes

cncf 云原生基金会 --》prometheus 第2个项目

2.swarm和k8s的区别?

       swarm 是docker公司自己搞的 基于容器的集群管理平台

       k8s--》CNCF

       k8s为什么能赢swarm?

              1.背后的大佬多

              2.性能和功能有优势

              3.生态系统的考虑,未来的更新和发展

k8s刚刚出来需要推广,需要得到认可--》底层的容器管理使用docker --》借势docker发展

k8s 得到认可后 跳过docker 直接使用containd可以实现容器技术,所以在1.23版本后不用docker

4.为什么使用容器技术会节约成本?

       各大互联网公司都在推容器化--》节约成本:硬件的使用率和饱和度问题得到提升,人力的运维成本

nfs不是特别合适的解决方案:

       1.nfs使用传统的网络 : 如果网络速度不快,数据在传输的过程中有延迟或者丢失

使用SAN(存储区域网络)

常用命令

  1. kubectl create deployment
  2. kubectl get pod -o wide
  3. node -o wide
  4. rs 副本控制器
  5. deployment  deploy
  6. ns namespace
  7. services svc
  8. kubectl describe   查询详细信息
  9. Troubleshooting 故障排查 解决故障
  10. kubectl logs
  11. kubectl exec   -it -- bash进入容器内部
  12. kubectl cluster-info
  13. kubectl apply -f *.yml
  14. kubectl delete
  15. kubectl explain   yaml文件的作用:就是给k8s传递参数,告诉k8s的控制器如果去创建资源 启动资源的时候,使用yaml文件去启动,这个文件里的指令有什么作用,哪些需要接,哪些不需要接
  16. kubectl explain ResourceQuota.metadata
  17. kubectl top node   查看cpu和内存的使用
  18. kubectl api-resources  查看k8s内部有哪些资源类型和接口版本
http://www.lryc.cn/news/421578.html

相关文章:

  • go http启动应用程序
  • Redis:概念、部署、配置、优化
  • 华为OD-D卷找座位
  • Go sdk下载和配置环境变量
  • qt的项目结构
  • 【NLP】文本特征处理:n-gram特征和文本长度规范
  • ESP32人脸识别开发 ---partitions.csv配置的一些说明(五)
  • 【学习笔记】Matlab和python双语言的学习(图论最短路径)
  • vue.config.js 配置 devserve 配置
  • 不入耳耳机什么牌子性价比高?五大年度必选款揭秘
  • SQL Zoo 6.The JOIN operation
  • 视频教程:Vue3移动端抽屉弹层组件实战
  • CSS 的 BFC(块级格式化上下文)
  • 【2023年】云计算金砖牛刀小试2
  • python--将mysql建表语句转换成hive建表语句
  • 异步调用实践:Async,Future, TaskExecutor、EventListener
  • Flask 异常处理
  • 【海思SS626 | 内存管理】海思芯片的OS内存、MMZ内存设置
  • linux crontab没有按照规则执行排查
  • Cloudflare的D1使用技巧
  • 解决端口号被占用问题
  • 如何在linux上部署zabbix监控工具
  • vulnhub系列:sp eric
  • JVM二:JVM类加载机制
  • 对于springboot无法连接redis解决方案
  • 关于android中的各种尺寸与计算
  • MySQL避免索引失效的方法详细介绍
  • 【Java】深入了解 Java 的 charAt() 方法
  • Linux 下 ETCD 安装、配置与命令使用总结
  • C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习