首页 > 其他分享 >云原生学习笔记-第23天

云原生学习笔记-第23天

时间:2024-09-07 19:23:04浏览次数:10  
标签:原生 容器 Kubernetes 23 部署 技术 笔记 Docker

云原生学习笔记-第23天可以涵盖多个方面的内容,但由于具体的学习内容和进度因人而异,以下是一个基于云原生技术常见知识点和实践的概括性笔记,旨在提供一个全面的学习框架和参考。

一、云原生概念与优势

云原生定义
云原生是一种利用云计算和现代技术构建可靠、可扩展应用的方法。它涉及微服务架构、容器化(如Docker)、编排(如Kubernetes)、自动化流程、可观察性和DevOps文化等多个方面。

云原生的优势

  • 灵活性:容器化的云原生应用程序可以在不同的环境中部署和迁移。
  • 可扩展性:云原生应用程序可以根据负载需求进行水平扩展,提供高性能和可伸缩性。
  • 可靠性:通过容器编排工具和自动化机制,云原生应用具备高可用性和故障恢复能力。
  • 效率:自动化流程和工具可以提高开发、测试和部署的效率,加快交付速度。

二、容器技术(Docker)

Docker基础知识

  • Docker是一种主流的容器运行时技术,提供了容器的运行时能力。
  • Docker镜像提供了一种全新的软件格式,使得软件的分发变得容易,且支持“Build Once, Run Anywhere”的理念。

Docker关键技术

  • Namespace:实现容器运行环境的隔离,容器应用进程之间不可见。
  • Cgroup:实现容器运行的资源隔离,避免容器间资源抢占和冲突。
  • Union Filesystem:一种分层、轻量级且高性能的文件系统,支持对文件系统的修改作为一次提交来叠加,是容器镜像的基础。

三、容器编排技术(Kubernetes)

Kubernetes简介

  • Kubernetes(简称K8s)是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务。
  • 它构建在Docker技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能。

Kubernetes关键概念

  • Pod:Kubernetes中的最小部署单元,是一组容器实例的集合。
  • Deployment:在K8S中部署的无状态的应用,如Nginx、Tomcat等。
  • Statefulset:在K8S中部署的有状态的应用,如MySQL、Redis等。
  • Service:定义了Pods的逻辑集合和访问这个集合的策略。

Kubernetes技术优势

  • 声明式语法直接定义应用的最终状态。
  • 提供开放的插件机制,兼容各类基础设施(公有云、私有云)。
  • 灵活的隔离机制能够快速为不同团队构建运行环境。

四、实践案例

案例一:使用Jenkins通知目标服务器拉取镜像并运行脚本

  1. 登录Jenkins,编写并执行脚本。
  2. 将脚本添加到环境变量或指定目录下,以便在任何地方执行。
  3. 在Jenkins中添加参数化构建,设置容器启动时占用的端口号。
  4. 配置构建后操作,使用Send build artifacts over SSH插件,通知目标服务器拉取镜像并执行脚本。

案例二:Kubernetes自定义资源(CRD)

  • 了解CRD在Kubernetes中的引入版本(如1.7)及其使用场景。
  • 掌握自定义资源的定义方法,包括使用specstatus等字段。
  • 理解CRD与Controller的关系,以及Controller如何通过队列或工作线程处理多个对象的请求。

五、总结与展望

云原生技术作为当前云计算领域的热点之一,正在深刻改变着软件开发和部署的方式。通过学习和实践云原生技术,我们可以更好地构建可靠、可扩展、高效的应用程序,并不断提升企业的业务竞争力和创新能力。未来,随着技术的不断发展和完善,云原生技术将在更多领域得到广泛应用和推广。

标签:原生,容器,Kubernetes,23,部署,技术,笔记,Docker
From: https://blog.51cto.com/u_12830878/11946244

相关文章

  • EmguCV学习笔记 VB.Net 9.3 移动检测类
    版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。教程VB.net版本请访问:EmguCV学习笔记VB.Net目录-CSDN博客......
  • OpenStack学习笔记 - 第23天
    一、OpenStack架构深入理解OpenStack作为一个开源的云计算管理平台,其架构由多个核心组件组成,这些组件通过RESTfulAPI相互通信,共同提供计算、存储、网络等基础设施即服务(IaaS)的能力。以下是OpenStack架构的深入理解:1.控制器节点(ControllerNode)功能:负责管理整个OpenStack集群,处理......
  • 代码整洁之道--读书笔记(4)
    代码整洁之道简介:本书是编程大师“Bob大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更高台阶。本......
  • Isaac Lab 学习笔记:概述
    IsaacLab主要用于机器人仿真,其对IsaacSim进行了简化封装,并提供了RL所需的Eviromnent接口/基类等,相较于IsaacSim而言,更加简洁、易于上手。IsaacLab的项目在GitHub-isaac-sim/IsaacLab,提供了源代码及Documents。这篇文章简要梳理了isaaclab的代码架构及各模块......
  • 使用libmpg123加alsa实现MP3的播放/暂停,切换,模式选择,C语言3
    note:使用多线程的方式MP3实现播放器,其中用到libmpg123,以及asound库,解码用到libmpg123,播放用到alsa,以下为c语言例程源码#include<alsa/asoundlib.h>#include<mpg123.h>#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<pthread.h>#include&l......
  • Dotnetty学习笔记——自定义初始化处理器
    常常我们需要开一个服务单,对接不同的客户端,编码器、解码器等都不同,需要针对不同IP添加不同的处理器。publicclassCustomInitializer:Channellnitializer<lSocketChannel>{Action<string,string>_dealMsgAction;lServer_server;publicCustomInitializer(Action<st......
  • Maven快速上手使用指南的笔记
    MavenMiniGuidesConfiguringforReproducibleBuilds使用Maven实现重复构建。检查当前使用的插件的版本。mvnartifact:check-buildplan修改pom.xml,增加如下配置,显式指定project.build.outputTimestamp的取值:<properties><project.build.outputTimestamp>202......
  • 【笔记】【THM】Phishing(网络钓鱼)(这个模块还没学完)
    【笔记】【THM】Phishing(网络钓鱼)了解如何分析和防御网络钓鱼电子邮件。使用各种技术调查现实世界的网络钓鱼尝试。在本模块中,您将学习如何动手分析各种网络钓鱼攻击。从检查电子邮件的源属性到查看恶意网络钓鱼附件,您将调查行业中攻击的真实示例。您还将了解攻击者如何发起网络......
  • maven笔记
    1、依赖范围【scope】:编译环境(main文件夹)、测试环境(test文件夹)、运行环境(打成的war包是否可用)compile:测试依赖范围,缺省值上面的三个环境都可用,如log4j。test:只争对测试classpath有效,如junit。provided:只对编译环境和测试环境有效,运行阶段外部容器已提供,故不需要额......
  • 【人工智能学习笔记】1_人工智能基础
    本系列是个人学习《阿里云人工智能工程师ACA认证免费课程(2023版)》的笔记,仅为个人学习记录,欢迎交流,感谢批评指正人工智能概述智能的三大能力:感知、记忆与思维、学习与适应能力人工智能的定义明斯基:“人工智能是一门科学,是使机器做那些人需要通过智能来做的事情”尼尔森......