Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >K8S学习笔记

K8S学习笔记

作者头像
千往
发布于 2020-03-19 08:27:47
发布于 2020-03-19 08:27:47
8070
举报

docker -- 容器 k8s -- 编排容器的工具/平台

k8s进行管理应用的时候,基本步骤是:创建集群,部署应用,发布应用,扩展应用,更新应用。

可以通过Minikube 来练手 ** 操作 Kubernetes 对象 —— 无论是创建、修改,或者删除 —— 需要使用 Kubernetes API。比如,当使用 kubectl 命令行接口时,CLI 会执行必要的 Kubernetes API 调用,也可以在程序中直接调用 Kubernetes API

k8s集群

集群看起来很牛,那么创建起来很复杂么?并不会,在k8s只要使用两条指令就可以创建一个集群,一个是kubectl init进行初始化,创建一个master节点,第二条指令就是kubectl join xxx创建一个node节点,加入这个集群。 在这边可以看到k8s在物理上进行划分的时候,划分了两种类型的主机,一个master节点,主要用来调度,控制集群的资源等功能;而node节点,主要是用来运行容器的节点,也就是运行服务的节点。 Master负责管理集群。Master协调集群中的所有活动,比如调度应用程序、维护应用程序所需的状态、扩展应用程序和推送新的更新。 在一个Kubernetes集群中,节点是一个虚拟机或物理机,它是作为worker存在的。每个节点都有一个Kubelet,它是一个代理,用于管理该节点和master之间的通信。生产环境中,Kubernetes集群应该至少有三个节点。

pod

在k8s里面,集群调度的最小单元就是一个pod,一个pod可以是一个容器,也可以是多个容器,例如你运行一个程序,其中使用了nginx,使用mysql了,使用了jetty,那么可以将这三个使用在同一个pod中,对他们提供统一的调配能力,一个pod只能运行在一个主机上,而一个主机上可以有多个pod。 其实实k8s本身不关心pod内部是什么类型容器,可以有多个容器在pod内启动(官方建议单一pod单一容器),pod内容器共享网络,共享存储,pod可以由控制器启动,控制器也就是k8s负责编排的组件之一,常见的有

  • Deployment,通过指定副本数量等属性,根据配置的pod模版,部署无状态的服务,能够提供强力的回滚,滚动更新等能力,这个也是最常用的一种;
  • Statefulset,有状态副本集,一般部署etcdelasticsearch等等这种有状态的服务,一般同时会挂载存储卷(也是k8s中定义的一种对象);
  • DeamonSet,守护进程集,一般指定节点部署一些服务,比如cpu监控等

node

一个 pod 总是运行在 node上。node是 Kubernetes 中的参与计算的机器,可以是虚拟机或物理计算机,具体取决于集群。每个工作节点由主节点管理。工作节点可以有多个 pod ,Kubernetes 主节点会自动处理在群集中的工作节点上调度 pod 。 主节点的自动调度考量了每个工作节点上的可用资源。 每个 Kubernetes 工作节点至少运行:

  • Kubelet,负责 Kubernetes 主节点和工作节点之间通信的过程; 它管理 Pod 和机器上运行的容器。
  • 容器运行时(如 Docker ,rkt )负责从仓库中提取容器镜像,解压缩容器以及运行应用程序。

如果它们紧耦合并且需要共享磁盘等资源,这些容器应在一个 Pod 中编排。

service

Kubernetes中的Service是一个抽象,它定义了一组逻辑Pods和访问它们的策略。Services支持有依赖关系的Pods之间的松散耦合。与所有Kubernetes对象一样,Service是使用YAML(首选)或JSON定义的。哪些Pods被选中用来组成一个Service通常是由标签选择器决定的。 尽管每个Pod都有唯一的IP地址,但是如果没有Service,这些IP不会暴露在集群之外。Service允许应用程序接收流量。通过在ServiceSpec中指定类型,可以以不同的方式公开服务:

  • ClusterIP (default) - 在集群中的内网IP上公开服务。这种类型使得服务只能从集群内部访问。
  • NodePort - 使用NAT在集群中每个选定节点的相同端口上公开服务。使用:从集群外部访问服务。
  • LoadBalancer - 在当前云中创建一个外部负载均衡器(如果支持),并为服务分配一个固定的外网IP。
  • ExternalName - 通过返回带有名称的CNAME记录,使用任意名称(在规范中由externalName指定)公开服务。

博客链接(强烈推荐):https://www.cnblogs.com/cjsblog/p/12050618.html 博客链接:https://blog.csdn.net/TM6zNf87MDG7Bo/article/details/79621510 博客链接:https://www.jianshu.com/p/72fed726191b 官方文档:https://kubernetes.io/zh/docs/tutorials/kubernetes-basics/deploy-app/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
k8s系列教程-初识k8s
搭建k8s开发环境有三种,一种是通过docker desktop + Minikube 来直接在你的电脑上搭建,这种搭建方式存在的问题比较多,很多功能不支持,不建议使用。另外一种方式是通过Docker Desktop安装k8s,这种k8s是单机版的,master 和node 是同一个节点也就是本机,这种方式安装的k8s基本上能满足我们的学习需求,初期学习阶段可以使用这种安装方式。还有就是通过前文介绍 vagrant 制作box 然后创建集群安装,这种安装方式是最完整也是最麻烦的。现在先介绍第二种安装方式,第二种方式是把k8s 镜像拉取下来并运行容器,但因为国内网络的问题,镜像依赖拉不下来,我们可以上github 拉阿里云的k8s-for-docker-desktop 到本地安装。
六个核弹
2022/12/23
1.4K0
k8s系列教程-初识k8s
Kubernetes/K8S快速入门
官方文档:https://kubernetes.io/zh/docs/setup/
码客说
2021/03/04
1.7K0
《k8s 集群搭建》不要让贫穷扼杀了你学 k8s 的兴趣!
阅读这篇文章先需要对 docker 的基本知识有所了解!相关阅读请移步:Docker上手,看完觉得自己又行了!
蔡不菜丶
2021/04/16
1.8K1
《k8s 集群搭建》不要让贫穷扼杀了你学 k8s 的兴趣!
docker、k8s 面试总结
Docker 是基于容器技术实现的,容器技术最开始是基于 Linux Container(简称 LXC)技术实现的,通过内核提供的 Namespace 和 Cgroup 机制,实现了对应用程序的隔离以及物理资源的分配。
lincoln
2022/03/02
1.6K0
k8s实践(1)--k8s集群入门介绍和基础原理
1、简单了解集群的工作原理和基础概念,名词解释。 2、安装etcd集群:etcd分布式键值存储系统,用于保持集群状态,比如Pod、Service等对象信息。 3、安装k8s集群,简单了解集群的如何工作。 4、搭建集群网络:基础网络搞好,后面才能顺利部署各种资源。 5、学习k8s的安全、Secrets,ssl认证。如果安全认证没有搞好,创建pod和service都会报各种错误。 6、然后我们深入学习pod和service。 7、深入学习集群工作原理分析,从基础到深度,才能学的扎实。 8、有了pod和service,就需要知道如果发现,学习coreDNS 9、开始部署一些有状态的服务 10、案例实践
黄规速
2022/04/14
2.1K0
k8s实践(1)--k8s集群入门介绍和基础原理
最详细的 K8S 学习笔记总结(2021最新版)!建议收藏
虽然 Docker 已经很强大了,但是在实际使用上还是有诸多不便,比如集群管理、资源调度、文件管理等等。那么在这样一个百花齐放的容器时代涌现出了很多解决方案,比如 Mesos、Swarm、Kubernetes 等等,其中谷歌开源的 Kubernetes 是作为老大哥的存在。
民工哥
2021/04/18
9.5K2
Docker集群编排工具之Kubernetes(K8s)介绍、安装及使用
K8s基础原理 k8s中文社区:https://www.kubernetes.org.cn/ 简介 Kubernetes与较早的集群管理系统Mesos和YARN相比,对容器尤其是 Docker的支持更加原生,同时提供了更强大的机制实现资源调度,自动 管理容器生命周期,负载均衡,高可用等底层功能,使开发者可以专注于开发应用。 Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用
863987322
2018/03/29
5.2K0
Docker集群编排工具之Kubernetes(K8s)介绍、安装及使用
带你一步一步摸索k8s
上面就是k8s的图标,是不是看上去很像海盗船的船舵,没错,Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。k8s 这个缩写是因为 k 和 s 之间有八个字符的关系。而且是谷歌“藏了多年的秘密武器”——-Borg 系统的开源版本
ikun999
2025/04/29
2510
带你一步一步摸索k8s
《K8S权威指南》读书笔记-入门篇
一. k8s介绍 1. 是什么 kubernetes:古希腊“舵手”的意思(指引鲸鱼-docker) Production-Grade Container Orchestration:生产级别的容器编排系统 is an open-source system for automating deployment, scaling, and management of containerized applications:用于自动部署,扩展和管理容器化应用程序的开源系统 2. 发展历程 google内部使用十年之
kinnylee
2020/10/15
1.6K0
《K8S权威指南》读书笔记-入门篇
【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装
首先,K8s并不是一个传统意义上的 PaaS平台即服务的工具,它充分给使用者提供了很多很多选择的空间。
程序员洲洲
2024/06/07
2.1K0
【云原生|K8s系列第1篇】:K8s的基础概念、组件架构及实战安装
K8S折磨的安装篇
这些容器管理的问题统称为容器编排问题,为了解决这些容器编排问题,就产生了一些容器编排的软件:
大忽悠爱学习
2022/08/23
7980
K8S折磨的安装篇
K8S | 核心原理分析
从服务的能力上看,可以进行分层管控,只是其中有相当一部分服务层,改动更新的频率很低,所以感知也不明显;
知了一笑
2023/09/01
3530
K8S | 核心原理分析
k8s学习五-k8s介绍(为什么要学k8s)
互联网早期,会直接将应用程序部署在物理机上,例如直接将java程序部署到物理机中
仙士可
2022/09/13
1.2K0
k8s学习五-k8s介绍(为什么要学k8s)
k8s实践(12)--K8s service服务详解
Kubernetes Pod 是有生命周期的,它们可以被创建,也可以被销毁,然而一旦被销毁生命就永远结束。 通过 ReplicationController 能够动态地创建和销毁 Pod(例如,需要进行扩缩容,或者执行)。 每个 滚动升级 Pod 都会获取它自己的 IP 地址,即使这些 IP 地址不总是稳定可依赖的。 这会导致一个问题:在 Kubernetes 集群中,如果一组 Pod(称为 backend)为其它 Pod (称为 frontend)提供服务,那么那些 frontend 该如何发现,并连接到这组 Pod 中的哪些 backend 呢?
黄规速
2022/04/14
9.5K0
k8s实践(12)--K8s service服务详解
k8s架构与组件详解
k8s系统在设计是遵循c-s架构的,也就是我们图中apiserver与其余组件的交互。在生产中通常会有多个Master以实现K8s系统服务高可用。K8s集群至少有一个工作节点,节点上运行 K8s 所管理的容器化应用。
你大哥
2021/10/11
4K0
k8s架构与组件详解
认识Kubernates(K8S)
在后端开发中,在介绍Jenkins的可伸缩部署方式上,主要有两种方式:一种是基于Docker(或者docker-swarm 集群)的部署方式,另外一种是基于kubernetes的部署方式(而kubernetes也是基于docker而设计的)。 基本概念 kubernetes是google开源的容器集群管理系统,提供应用部署、维护、扩展机制等功能,利用kubernetes能方便管理跨集群运行容器化的应用,简称:k8s。 基本概念 Pod:若干相关容器的组合,Pod包含的容器运行在同一host上,这些容器使用相
xiangzhihong
2018/02/06
2.9K0
认识Kubernates(K8S)
运维篇 k8s(Kubernetes)
k8s是kubernetes的简称,即字母“k”到最后一位相隔8位字母。名字来源于希腊语,意思是“舵手”或“领航员”。
用针戳左手中指指头
2021/01/29
3.5K0
运维篇 k8s(Kubernetes)
K8S太火了!花10分钟玩转它不香么?
Kubernetes(简称K8S,K和S之间有8个字母)是用于自动部署,扩展和管理容器化应用程序的开源系统。它将组成应用程序的容器组合成逻辑单元,以便于管理和服务发现。Kubernetes 源自Google 15 年生产环境的运维经验,同时凝聚了社区的最佳创意和实践。
macrozheng
2021/01/25
3.1K0
K8S太火了!花10分钟玩转它不香么?
图解K8s源码 - 序章 - K8s组件架构
在之前的文章中我们介绍了从传统部署方式到虚拟化再到容器部署方式的演变,随着容器数量规模的不断增大,我们急需一个大规模容器编排系统。Kubernetes是一个全新的基于容器技术的分布式架构解决方案,并且是一个一站式的完备的可弹性运行的分布式系统开发和支撑平台。
才浅Coding攻略
2022/12/12
7980
图解K8s源码 - 序章 - K8s组件架构
k8s的概念与架构介绍
K8S,全称 Kubernetes,是一个用于管理容器的开源平台。它可以让用户更加方便地部署、扩展和管理容器化应用程序,并通过自动化的方式实现负载均衡、服务发现和自动弹性伸缩等功能。
张哥编程
2024/12/13
3160
相关推荐
k8s系列教程-初识k8s
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档