云技术-docker

news2024/11/28 13:42:18

声明!
        学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面连接进入b站主页[B站泷羽sec](https://space.bilibili.com/350329294)


系统和工具

        链接:https://pan.quark.cn/s/7c366373a85e
                提取码:5cuD

        链接:https://pan.baidu.com/s/1Rn7mA_-aEh60L_iX4PWjzg?pwd=2w25 
                提取码:2w25 解压密码:Sec工具
 

        所提供的工具资料仅供学习之用。这些资料旨在帮助用户增进知识、提升技能,并促进个人成长与学习。用户在使用这些资料时,应严格遵守相关法律法规,不得将其用于任何非法、欺诈、侵权或其他不当用途。本人和团队不对用户因使用这些资料而产生的任何后果负责,包括但不限于因操作不当、误解资料内容或违反法律法规而导致的损失或损害。用户应自行承担使用这些资料的风险,并在使用前进行充分的了解和评估。


云技术介绍 

        云架构的发展历史

        阶段一:传统基础设施构建阶段

        背景:以前构建系统的时候,需要购买设备,租用数据中心机柜,然后搭建基础设施。

        

        特点:在这个阶段,构建系统需要购买大量的硬件设备,租用数据中心机柜,并手动搭建基础设施。这种方式不仅成本高昂,而且灵活性差,难以适应快速变化的市场需求。

        限制:资源利用率低,扩展性差,难以满足大规模、高并发的业务需求。

        阶段二:虚拟化技术阶段

        背景:随着处理器的不断进化,虚拟机出现了。它能把一台机器的资源分成多台机器来使用,提高了资源利用率,变得更加灵活可拓展,实现了从裸机基础设施到虚拟化基础设施的转变。

        特点:虚拟化技术提高了资源利用率,使得资源更加灵活可拓展。通过虚拟化技术,企业可以构建出从裸机基础设施到虚拟化基础设施的转变,降低了成本,提高了效率。

        代表技术:VMware、Hyper-V等虚拟化平台。

        阶段三:容器化技术阶段

        背景:接着,容器化技术登场,进一步提高了效率,实现了服务器,网络和存储的虚拟交付。

        特点:容器化技术进一步提高了资源的利用效率,实现了服务器、网络和存储的虚拟交付。通过容器化技术,企业可以更加快速地部署和管理应用程序,降低了运维成本。

        代表技术:Docker、Kubernetes等容器化平台和工具。

        阶段四:云计算阶段

        定义:现在,我们把最新一代的基础设施称为“云”。云计算不是单一的技术,而是众多技术的集合体,它包括了虚拟化技术、容器化技术、自动化技术、大数据技术等众多先进技术。

        特点:云计算提供了按需付费、弹性扩展、高可用性等优势,使得企业可以更加灵活地应对市场需求的变化。通过云计算,企业可以快速地获取计算资源、存储资源和数据库资源等,降低了IT成本,提高了业务效率。

        服务类型:云计算服务通常分为基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)三种类型。IaaS提供底层的计算、存储和网络资源;PaaS提供开发、测试和部署应用程序的平台;SaaS则提供完整的应用程序服务,用户无需关心底层的基础设施和平台。

        云服务的定义与特点

        定义:云是一种IT基础设施系统,它将资源的创建抽象在容错,地理分布和可扩展的物理基础设施之上。云服务是将原本需要在本地进行的计算、存储等任务,转移到由大量服务器组成的云端进行,用户只需通过网络即可访问和使用这些资源。云基础架构必须稳定,不能频繁出现终端。

        特点

        无需下载与安装:用户无需在本地设备上下载和安装任何软件或应用,只需通过网络即可直接使用云服务提供的功能。

        操作方便:云服务通常提供简洁易用的用户界面和丰富的在线帮助文档,使得用户无需具备专业的技术知识也能轻松上手。

        功能丰富:云服务提供商不断更新和优化其功能,以满足用户日益多样化的需求。从简单的文件存储和共享,到复杂的数据分析和处理,云服务都能提供一站式的解决方案。

        价格低廉:由于云服务采用了按需付费的模式,用户只需支付实际使用的资源费用,大大降低了初期的投资成本。

        高度可扩展:云服务能够根据用户的需求动态调整资源分配,确保在业务高峰期也能提供稳定可靠的服务。

地理分布的云基础设施能够提高容错能力,而且云必须能够快速扩展,以满足各种需求。

      有很多公有云有云服务商,比如Amzon Web Services(AWS),Azure,Google(GCP),还有华为云,腾讯云,阿里云等等。

      组织可以使用OpenStack等工具在自己的数据中心搭建私有云,或者一部分业务运行在私有云中,一部分运行在共有云中。


        云分类

        基础设施即服务(IaaS)

        定义:IaaS是一种云计算服务模式,它将计算资源(如服务器、存储、网络等)作为服务提供给用户。用户可以通过互联网租用这些资源,并根据自己的需求进行配置和管理。

        特点

提供底层的计算、存储和网络资源。

用户需要自行安装和配置操作系统、中间件和应用程序。

灵活性和可扩展性强,用户可以根据需求动态调整资源。

成本效益高,用户只需支付实际使用的资源费用。

        平台即服务(PaaS)

        定义:PaaS是一种云计算服务模式,它为用户提供了一个基于云端的开发和部署环境。用户可以在这个平台上开发、测试、部署和管理自己的应用程序,而无需关心底层基础设施的配置和管理。

        特点

提供应用程序开发、测试、部署和托管所需的平台和工具。

简化了应用程序的开发和部署过程,提高了开发效率。

支持多种编程语言和框架,满足不同开发者的需求。

用户可以专注于应用程序的功能实现,而无需担心底层基础设施的配置和管理。

        软件即服务(SaaS)

        定义:SaaS是一种云计算服务模式,它提供了直接交付已经构建好的应用程序。用户可以通过互联网访问这些应用程序,并根据自己的需求进行使用,而无需在本地安装和配置。

        特点

提供完整的应用程序服务,用户无需关心底层的基础设施和平台。

用户可以通过订阅或按需付费的方式使用应用程序。

应用程序的维护、升级和扩展由SaaS提供商负责。

用户可以随时随地通过互联网访问应用程序,提高了灵活性和便利性。


        共享责任模型

        共享责任模型的定义

        共享责任模型(Shared Responsibility Model,SRM)是一种在云服务环境中,云服务提供商与客户之间共同分担云安全责任的框架。该模型强调,云服务的安全性不仅取决于云服务提供商的努力,还需要客户的积极参与和配合。

        共享责任模型的原理

        在共享责任模型中,云服务提供商和客户各自负责云堆栈的不同部分。云服务提供商通常负责云平台的安全性,包括主机操作系统、虚拟化层及其设施的物理安全性等。而客户则需要负责在云中的业务安全性,包括客户操作系统、应用程序软件、云计算实例的防火墙以及传输和空闲时的加密数据等。

        共享责任模型的具体应用

        以AWS为例,AWS明确支持共享责任模型,并详细阐述了其与客户在云安全方面的责任划分。AWS表示,其负责云平台的安全性,包括主机操作系统、虚拟化层以及物理设施的安全性等。而客户则需要负责其操作系统、应用程序、数据以及网络安全等方面的管理。

具体来说,AWS提供以下安全措施:

        主机操作系统和虚拟化层安全:AWS负责管理和维护其主机操作系统和虚拟化层的安全性,包括定期更新补丁、监控和防御安全威胁等。

        

        物理设施安全:AWS的数据中心具备严格的物理安全措施,如门禁系统、CCTV监控、物理访问审计等,以确保其物理设施的安全性。

而客户则需要负责以下安全措施:

        操作系统和应用程序安全:客户需要负责其操作系统和应用程序的安全配置和更新,包括安装安全补丁、配置防火墙和入侵检测系统(IDS)等。

        

        数据安全:客户需要对其存储在AWS云平台上的数据进行加密和保护,以防止数据泄露和篡改。

        

        网络安全:客户需要配置和管理其云计算实例的网络访问控制,包括设置安全组、网络访问控制列表(NACL)等。

        共享责任模型的注意事项

        在采用共享责任模型时,需要注意以下几点:

        明确责任划分:云服务提供商和客户之间需要明确各自的安全责任,以避免出现责任不清的情况。

        定期评估和更新:随着云技术的不断发展和安全威胁的不断变化,云服务提供商和客户需要定期评估和更新其安全措施,以确保云环境的安全性。

        加强沟通和协作:云服务提供商和客户之间需要加强沟通和协作,共同应对安全威胁和挑战。

        共享责任模型的案例

        以AWS上的数据泄露事件为例,如果数据泄露是由于AWS程序漏洞导致的,那么AWS可能需要承担一定的责任。但如果数据泄露是由于客户未能妥善配置其安全设置或管理其数据而导致的,那么客户则需要承担相应的责任。因此,在采用云服务时,客户需要认真了解并遵守云服务提供商的安全要求和指导,以确保其业务的安全性。


        云架构

        虚拟化

        虚拟化是云架构的核心技术之一,它将物理硬件资源封装成多个独立的虚拟环境,实现了资源的共享和隔离。虚拟化技术具有以下几个特点:

        资源抽象:虚拟化技术将物理硬件资源抽象成多个独立的虚拟环境,使得每个虚拟环境都可以独立运行操作系统和应用程序。

        动态分配:虚拟化技术实现了计算资源的动态分配和灵活管理,可以根据实际需求调整虚拟环境的配置和数量。

        资源隔离:虚拟化技术通过隔离机制,确保不同虚拟环境之间的数据和应用程序互不干扰,提高了系统的安全性和稳定性。

        虚拟化技术可以分为全虚拟化、半虚拟化和硬件辅助虚拟化等多种类型。其中,全虚拟化技术通过软件方式模拟完整的计算机硬件系统,适用于各种操作系统和应用程序;半虚拟化技术则需要修改操作系统以更好地支持虚拟化环境;硬件辅助虚拟化技术则利用CPU等硬件特性来提高虚拟化性能。

        容器

        容器是一种轻量级、可移植的虚拟化技术,它允许在一个主机操作系统上运行多个独立的应用程序环境。容器技术具有以下几个特点:

        轻量级:容器相对于虚拟机来说更加轻量级,因为它不需要模拟完整的硬件系统,只需要提供应用程序运行所需的环境。

        可移植性:容器可以在不同的主机操作系统上运行,而无需进行额外的配置和修改。

        高效性:容器通过共享主机操作系统的内核和资源,可以更加高效地利用计算资源。

        容器技术的工作原理是利用操作系统的虚拟化功能,将应用程序及其依赖项打包成一个独立的容器,并在容器中运行。每个容器都包含了运行应用程序所需的全部组件,包括代码、运行时、系统工具、库和设置。这使得应用程序可以在任何容器化环境中一致地运行,而无需担心底层系统的差异。

        云架构的其他关键技术

        除了虚拟化和容器技术外,云架构还涉及以下关键技术:

        分布式存储技术:云架构需要处理大量用户数据,因此必须采用高效、可靠的存储技术来确保数据的可用性和安全性。分布式存储技术通过将数据分散存储在多个节点上,提高了数据的可靠性和可用性。

        网络通信技术:云架构需要支持低延迟、高带宽的网络连接,以确保用户能够流畅地使用云服务。网络通信技术是实现远程访问和实时交互的基础,需要支持多种网络协议和通信技术。

        安全管理技术:云架构中涉及大量的用户数据和应用程序,因此必须确保数据的安全性和隐私性。安全管理技术需要采用多层次的防护机制来确保用户数据的安全性和隐私性,同时支持实时的安全监控和应急响应以应对各种潜在的安全威胁。


        云架构设计

        组件选择

        架构确定:在设计云架构之前,首先需要明确业务需求、应用场景以及性能要求等,从而确定适合的架构类型,如微服务架构、分布式架构等。一旦确定了架构类型,就很难进行大规模的更改,因此这一步骤需要格外谨慎。

        组件选择:组件可以分为绑定组件和非绑定组件。绑定组件通常与特定的云服务商或技术栈紧密相关,而非绑定组件则更加通用和灵活。组件的来源可以是自己开发、使用开源组件或购买商业组件。云原生组件是专为分布式系统设计的,具有高度的可扩展性、可靠性和安全性。这些组件通常是开源的,但也可以选择购买商业支持。

        安全编码:无论选择哪种组件,都需要确保安全编码。这包括使用最新的安全协议、避免常见的安全漏洞以及进行定期的安全审计。

        基础设施即代码(IaC)

        基础设施即代码是一种将基础设施配置和管理过程自动化的方法。它允许开发人员使用代码来描述和部署基础设施,从而提高了效率和可靠性。以下是IaC的几个关键方面:

        引导介质:Packer是一个开源工具,用于创建机器镜像。它可以从各种源(如ISO文件、虚拟机快照等)创建镜像,并支持多种操作系统和云平台。

        安装系统:Terraform是一个开源的基础设施即代码工具,用于安全、高效地部署和管理云基础设施。它允许开发人员使用声明式语言来描述基础设施的期望状态,并自动执行必要的配置和部署操作。

        自动配置:Ansible是一个开源的自动化工具,用于配置管理、应用部署和任务自动化。它支持多种操作系统和云平台,并提供了丰富的模块和插件来简化配置过程。

        状态强制:Monit是一个系统监控和管理工具,用于监控进程、文件系统、网络等。它可以在检测到异常时自动执行指定的操作,如重启进程、发送警报等。

       

        整体架构设计

        在确定了组件和IaC工具后,就可以开始设计整体架构了。这包括确定各个组件之间的交互方式、数据流动路径、安全策略等。以下是一些建议:

        模块化设计:将整个架构拆分成多个独立的模块,每个模块负责特定的功能或服务。这有助于提高系统的可扩展性和可维护性。

        高可用性设计:通过负载均衡、冗余备份和故障转移等技术来提高系统的可用性。确保在部分组件出现故障时,整个系统仍然能够正常运行。

        安全性设计:采用多层次的防护机制来确保数据的安全性和隐私性。包括使用加密技术、访问控制、安全审计等。

        性能优化:根据业务需求和应用场景对系统进行性能优化。包括优化数据库查询、使用缓存技术、减少网络延迟等。

        集成部署

        持续集成和持续交付(CI/CD)管道

        CI/CD管道是云构建集成部署的核心,它实现了从代码编写到部署的自动化流程。以下是CI/CD管道的关键步骤:

        代码版本控制:使用版本控制系统(如Git)来管理代码,确保团队成员可以协同开发,同时保持代码的可追溯性。

        自动化构建:使用自动化构建工具(如Jenkins、Travis CI)来自动化构建过程,确保代码在每次提交后能够自动编译、测试和构建。

        自动化测试:编写自动化测试,包括单元测试、集成测试和端到端测试。测试用例的自动运行可以在代码变更时及时检测问题。

        持续集成:配置持续集成服务器,定期或在代码提交时自动执行构建和测试,及时发现问题并进行修复。

        自动化部署:使用自动化部署工具(如Jenkins、GitLab CI/CD)来自动化部署应用程序到目标环境。

        GitOps:GitOps是一种基于Git的离散交付和部署的操作框架模型,它使开发者使用Git,而不是传统的连续交付管道,来进行集群管理和应用程序部署。

        弹性可靠性

        弹性可靠性是云构建集成部署的重要方面,它确保了系统在面临单点故障时能够持续提供服务。以下是实现弹性可靠性的关键策略:

        冗余设计:通过冗余部署、故障转移和数据备份策略来提高系统的可靠性和可用性。

        弹性伸缩:利用云计算平台的弹性伸缩功能,根据负载自动调整资源,确保交付过程的稳定性。

        故障检测和恢复:采用自动化的故障检测工具,可以快速识别和修复故障,提高系统的响应速度和可用性。

        全球负载均衡(GSLB)

        全球负载均衡是解决客户单访问单点故障隐患的有效手段。它通过智能DNS或全局流量管理器等技术,将用户请求分发到全球范围内的多个数据中心,从而实现负载均衡和故障转移。GSLB还可以根据用户的位置、网络状况等因素,选择最优的数据中心提供服务,提高用户体验。

        控制保护

        控制保护是确保系统免受漏洞和内部攻击的关键。以下是实现控制保护的关键措施:

访问控制:实施严格的访问控制机制,只允许授权的用户和应用程序访问系统资源。

安全审计:定期进行安全审计和漏洞扫描,及时发现并修复潜在的安全问题。

数据加密:对敏感数据进行加密存储和传输,确保数据的安全性和隐私性。

监控和报警:配置监控和报警系统,及时发现并解决运行时问题。

        云设计模式

        微服务架构

        微服务架构是一种将应用程序构建为一组小型、自治的服务的方法,每个服务都运行在其独立的进程中,服务间通过轻量级通信机制进行通信。这种架构模式具有以下特点:

        模块化服务:微服务架构将应用程序划分为多个独立的服务,每个服务都专注于特定的业务功能,从而实现了代码的模块化和服务的松散耦合。

        独立部署和扩展:由于每个微服务都是独立的,因此可以独立地进行代码修改、部署和扩展,无需影响其他服务。这提高了系统的弹性和容错能力。

        技术栈灵活性:微服务架构允许使用不同的技术栈来开发不同的服务,从而可以根据业务需求选择最佳的技术方案。

        安全优势:每个微服务都被强化和隔离,因此单一服务的漏洞对整体系统的影响较小,提高了系统的安全性。

然而,微服务架构也存在一些挑战:

        调试复杂性:由于服务之间的交互增多,调试和跟踪事务变得更加复杂。

性能瓶颈:微服务之间的通信可能会引入额外的网络延迟,从而影响系统性能。

        零信任架构

        零信任架构是一种网络安全理念,它打破了传统的基于网络边界的信任模型,转而采用基于身份的访问控制和持续的信任评估。这种架构模式具有以下特点:

        基于身份的访问控制:零信任架构以用户的身份为授权访问的关键,所有用户和设备在访问资源之前都必须经过严格的身份验证和授权检查。

        持续的信任评估:授权决策不再依赖于传统的静态标准(如用户的地理位置或网络内部/外部),而是对用户的行为和环境进行连续监控,并根据实时数据动态调整访问权限。

        动态访问管理:系统会不断监测用户的行为、设备状态和网络环境,以便在任何必要时刻迅速调整访问权限,确保只有合规的活动能够获得所需资源的访问。

        最小化权限原则:按照“只必需”的原则来分配权限,确保用户和设备只能访问完成特定任务所必须的最少资源。

        零信任架构的应用场景非常广泛,包括远程办公、多云环境、合作伙伴访问等。在实现零信任架构时,可以采用多种技术,如SDP(软件定义边界)、MSG(微隔离)、IAM(增强型身份治理)等。


        安全控制

        网络控制

        在传统架构中,网络控制主要通过防火墙来实现。防火墙能够设置规则,允许或阻止特定的网络流量通过,从而保护内部网络免受外部威胁。然而,在云环境中,网络架构变得更加复杂和动态,因此传统的防火墙控制方式已经无法满足需求。云环境通常使用SDN(软件定义网络)和SD-WAN(软件定义广域网)来实现网络控制。

        SDN:一种新型的网络架构,它将数据平面和控制平面分离,通过集中式的控制器来管理网络流量。SDN可以对不同的接口(如API或GUI)设置网络规则,从而实现更灵活、更细粒度的网络控制。SDN还支持虚拟化、网络编程和自动化部署等功能,可以大大简化网络管理和维护的难度。在SDN中,mTLS(相互传输层安全)不仅能加密流量,还能对客户端进行身份验证,确保只有拥有合法证书的客户端才能访问微服务。

        SD-WAN:一种通过软件控制和网络虚拟化技术,优化和管理广域网(WAN)流量的解决方案。SD-WAN能够智能地选择最佳路径来传输数据,基于应用优先级、带宽利用率、延迟和其他性能指标来动态调整流量流向。SD-WAN还支持多种类型的连接(如MPLS、宽带互联网和LTE),能够灵活接入不同的数据中心和云服务平台。在多云环境下,SD-WAN可以实现自动化服务交付、负载均衡、安全管理等功能,提高云计算的性能、稳定性和安全性。

        身份管理

        身份管理是指对用户身份进行验证、授权和管理的过程。在企业和云环境中,身份管理对于确保数据安全和访问控制至关重要。

        企业身份管理:企业通常使用AD(活动目录)和LDAP(轻量目录访问协议)进行身份管理。这些系统能够存储用户账户信息、密码和权限等,并支持对用户进行身份验证和授权。在企业中,身份管理通常与访问控制系统集成,以实现对资源(如文件、数据库和应用程序)的细粒度访问控制。

        云身份管理:随着云计算的普及,云身份管理变得越来越重要。云身份提供者(IdP)作为真实身份来源,是更安全的解决方案。


安装及使用容器

      虚拟化中每个 VM 需要运行自己的操作系统,大大增加了总体开销。容器化是更现代的架构,容器共享内核与硬件,更快、更小、更高效。容器是对虚拟化的补充,而非取代。容器的系统开销更小,可以进一步分离应用组件,比如搜索、登录、查询、订单功能分开。容器使用映像作为模板生成,映像相当于计算机硬盘。容器使用不同发行版文件加载内核,运行容器。

        Docker

        安装docker

        通过apt-get安装docker

sudo apt-get install docker.io

        启动docker

        启动docker并查看服务状态

systemctl start docker

systemctl status docker

        Docker换源

        使用vi编辑器编辑daemon.json文件进行换源

        sudo vi /etc/docker/daemon.json

        拉取镜像

        拉取centos的docker镜像

docker pull centos:7.6.1810

        运行镜像

        docker run -it --name my_centos7 centos:7.6.1810 /bin/bash

-it:这是两个选项的组合。

-i 或 --interactive:保持容器的标准输入(STDIN)开放,即使没有附加任何东西也是如此。

-t 或 --tty:分配一个伪终端(pseudo-TTY)或终端。

--name my_centos7:这个选项为容器指定了一个名称(my_centos7)。

centos:7:这指定了要使用的Docker镜像。如果本地没有这个镜像,Docker会从Docker Hub上拉取它。

/bin/bash:这是在容器内部要执行的命令。这个Bash会话将是交互式的。

        创建apache容器

docker container run -d --rm -p 8080:80 httpd

-d:这个选项告诉Docker以“detached mode”(后台模式)运行容器。这意味着容器会在后台运行。

--rm:这个选项告诉Docker在容器停止时自动删除它。

-p 8080:80:这个选项用于端口映射。它将容器内部的80端口映射到宿主机的8080端口上。可以通过访问宿主机的8080端口来访问容器内部运行的Apache HTTP服务器。

httpd:这是要运行的Docker镜像的名称。

        访问apache容器

        常用命令

        查看所有容器

        docker container ls

        进入特定容器

             docker exe -it 899 /bin/bash

        停止容器

             dochker container stop 899

        挂载宿主机目录运行容器

dock container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd

        列出所有正在运行的容器

             docker ps

查看特定容器的进程信息

             docker top <容器id>


        Kubernetes(K8S)

        Kubernetes(k8s)介绍

      Kubernetes 通常简称为 K8s,是一个开源的容器编排平台。

      它可以自动化部署、扩展和管理容器化应用程序,在多个服务器上高效运行容器,确保应用的高可用性和可扩展性。

        Kubernetes 的核心概念

      Pod是 Kubernetes 中最小的可部署单元,可包含一个或多个容器,这些容器共享网络命名空间和存储卷,一起被调度和管理。

      Deployment用于管理 Pod 的副本数量和更新策略,确保应用始终保持指定数量的副本在运行,可实现滚动更新等功能。

      Service定义一组 Pod 的访问方式,提供稳定的 IP 地址和端口,让外部可以访问到一组 Pod。

      Node是 Kubernetes 中的工作节点,可以是物理服务器或虚拟机。每个 Node 上运行着 Kubelet 和容器运行时,负责管理容器的生命周期。

        安装 Kubernetes

              安装 Minikube(用于本地开发的 Kubernetes 环境):下载安装包,根据操作系统选择合适版本,按照安装向导进行操作。

      启动 Minikube:打开终端,运行“minikube start”命令。

        部署应用到 Kubernetes

        创建一个 Deployment:“kubectl create deployment nginx --image=nginx”,部署 Nginx 服务器。

        查看 Deployment:“kubectl get deployments”。

        创建一个 Service:“kubectl expose deployment nginx --port=80 --type=NodePort”,让外部访问 Nginx 服务器。

        查看 Service:“kubectl get services”。

        访问应用

        在 Service 信息中找到 NodePort 的端口号,使用“<Minikube IP>:<NodePort>”在浏览器中访问 Nginx 服务器。

        扩展应用

        扩展 Deployment 的副本数量:“kubectl scale deployment nginx --replicas=3”。

        查看副本数量:“kubectl get deployments”。

        更新应用

        更新 Deployment 的镜像:“kubectl set image deployment/nginx nginx=new-image:version”。

        查看更新进度:“kubectl rollout status deployment/nginx”。

        Git

      Git 是一个分布式版本控制系统,用于跟踪文件的变化,方便团队协作开发软件项目。可以记录文件的历史版本,允许开发者在不同版本之间切换,并且可以合并多个开发者的修改。

        安装 Git

        在不同操作系统上安装方法不同:

        Windows:从 Git 官方网站下载安装程序进行安装。

        macOS:使用 Homebrew 等包管理器安装 Git。

        Linux:通过系统的包管理器安装 Git,如在 Ubuntu 上使用“sudo apt-get install git”。

        Git 的安全措施

      保护 Git 仓库很重要,因为它通常包含项目的源代码和敏感信息。

      使用强密码,为 Git 远程仓库设置强密码,避免简单或常用密码。

      限制访问权限,只授予必要人员访问权限,可使用 Git 提供的权限管理功能或第三方工具。

      避免提交敏感信息,若不小心提交,可使用“git rm --cached <文件名>”从暂存区删除,然后“git commit --amend”修改上一次提交。创建“.gitignore”文件,列出不需要被跟踪的文件和目录。

      确保与 Git 远程仓库的通信是加密的,可以使用 SSH 或 HTTPS 协议进行通信。

      定期进行安全审计,检查 Git 仓库的安全性,包括权限设置、敏感信息泄露等,可使用第三方工具。

      定期备份 Git 仓库,防止数据丢失,可以使用 Git 的备份工具或复制到其他存储设备中。

      克隆仓库:“git clone <远程仓库地址>”。

      处理冲突:当多个开发者同时修改同一个文件时,可能会出现冲突,在合并分支时需要手动解决冲突,然后提交更改。

      创建分支:“git branch <分支名>”。

      切换分支:“git checkout <分支名>”。

      合并分支:在一个分支上完成工作后,可将其合并到另一个分支。先切换到目标分支,然后使用“git merge <源分支名>”命令进行合并。

      初始化仓库:“git init”。

      添加文件:“git add <文件名>”或“git add.”。

      提交更改:“git commit -m "提交说明"”。

      查看状态:“git status”。

       查看历史记录:“git log”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2249096.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《解锁计算机专业宝藏:核心编程语言与学习资料全解析》

在当今数字化浪潮汹涌澎湃、技术迭代日新月异的时代&#xff0c;计算机专业宛如一座蕴藏无尽宝藏与无限机遇的神秘殿堂&#x1f3f0;。对于莘莘学子而言&#xff0c;精准掌握核心编程语言&#xff0c;并手握优质学习资料&#xff0c;恰似寻得开启这扇殿堂大门的秘钥&#xff0c…

27加餐篇:gRPC框架的优势与不足之处

gRPC作为一个现代的、开源的远程过程调用(RPC)框架,在多个方面都展现了其优雅之处,同时也存在一些不足之处。这篇文章我们就相对全面的分析一下gRPC框架那些优雅的地方和不足的地方。 优雅的地方 gRPC作为一个RPC框架,在编码、传输协议已经支持多语言方面都比较高效,下…

Leetcode打卡:交替组II

执行结果&#xff1a;通过 题目&#xff1a;3208 交替组II 给你一个整数数组 colors 和一个整数 k &#xff0c;colors表示一个由红色和蓝色瓷砖组成的环&#xff0c;第 i 块瓷砖的颜色为 colors[i] &#xff1a; colors[i] 0 表示第 i 块瓷砖的颜色是 红色 。colors[i] 1 …

在Windows下编译支持https的wsdl2h

下载源码 在官网下载源码 安装Openssl 下载OpenSSL并安装&#xff0c;安装完成后需要将OpenSSL的路径添加到环境变量中 配置VS 1、打开工程 2、因为前面安装的OpenSLL是64位的&#xff0c;因此需要创建一个X64的配置 打开配置管理器&#xff0c;然后选择新建&#xff0…

利用Prompt工程为LLM提升推理能力

利用Prompt工程为LLM提升推理能力 基于策略的推理详解ReAct: 推理与行动思维链&#xff1a;逐步解决问题反思&#xff1a;深入分析和自我审查与代理架构的集成实际应用代码附录 众所周知&#xff0c;一个精心设计的Prompt能够显著增强大型语言模型&#xff08;LLMs&#xff09;…

[C++ 核心编程]笔记 4.1 封装

4.1.1 封装的意义 封装是C面向对象三大特性之一 封装的意义: 将属性和行为作为一个整体&#xff0c;表现生活中的事物将属性和行为加以权限控制 封装意义一: 在设计类的时候&#xff0c;属性和行为写在一起&#xff0c;表现事物 语法: class 类名{ 访问权限: 属性 /行为 }…

基于Qt实现的自定义树结构容器:设计与应用

在Qt框架中&#xff0c;尽管其提供了许多强大的容器类&#xff08;如 QList, QMap, QTreeWidget 等&#xff09;&#xff0c;但缺少一个通用的、灵活的树结构容器&#xff0c;直接支持多层级数据管理。为了满足这些需求&#xff0c;本文设计并实现了一个可复用的自定义树结构容…

Web登录页面设计

记录第一个前端界面&#xff0c;暑假期间写的&#xff0c;用了Lottie动画和canvas标签做动画&#xff0c;登录和注册也连接了数据库。 图片是从网上找的&#xff0c;如有侵权私信我删除&#xff0c;谢谢啦~

钟睒睒的“傲慢与偏见”

文章内容根据网络内容整理形成 最近&#xff0c;钟睒睒关于绿瓶水不适合长期饮用的言论&#xff0c;在网上引起了一番新的热议&#xff0c;让刚平静不久的包装饮用水竞争&#xff0c;再次掀起一阵波澜&#xff0c;同时&#xff0c;其对于企业家直播带货的等系列看法&#xff0c…

【ArcGISPro】使用AI提取要素-土地分类(sentinel2)

Sentinel2数据处理 【ArcGISPro】Sentinel-2数据处理-CSDN博客 土地覆盖类型分类 处理结果

【技术文档:技术传播的灯塔】

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Qt-系统相关(2)多线程网络

Qt多线程 在 Qt 中&#xff0c;多线程的处理⼀般是通过 QThread类 来实现。 QThread 代表⼀个在应⽤程序中可以独⽴控制的线程&#xff0c;也可以和进程中的其他线程共享数据。 QThread 对象管理程序中的⼀个控制线程。 QThread 常⽤ API&#xff1a; 使用线程 关于创建线程…

永久免费使用最好的Markdown编辑器——Typora

介绍 Typora 是一款轻量级的 Markdown 编辑器&#xff0c;其最为出众的特点是&#xff1a; 所见即所得。 Typora 于2021年11月23日推出了第一个正式版&#xff0c;并转为收费。不过价格也算合理&#xff0c;89元/3台设备&#xff0c;为一次买断制。 直到2022年年中&#xff0…

Linux环境实现c语言编程

Linux环境实现c语言编程 准备工作 准备一台Linux虚拟机/机器 操作流程 打开Linux机器 打开终端 查看是否有GCC编译器 GCC是什么 GCC是GNU编译器集合&#xff08;GNU Compiler Collection&#xff09;的简称。它是一套免费的开源编程语言编译器&#xff0c;支持多种编程语…

VTK中对于相机camera的设置

1. 相机的核心属性 在 VTK 中&#xff0c;vtkCamera 的核心属性有默认值。如果你不设置这些属性&#xff0c;相机会使用默认值来渲染场景。 Position&#xff08;默认值&#xff1a;(0, 0, 1)&#xff09;&#xff1a; 默认情况下&#xff0c;相机位于 Z 轴正方向的 (0, 0, 1)…

glog在vs2022 hello world中使用

准备工作 设置dns为阿里云dns 223.5.5.5&#xff0c;下载cmake&#xff0c;vs2022&#xff0c;git git clone https://github.com/google/glog.git cd glog mkdir build cd build cmake .. 拷贝文件 新建hello world并设置 设置预处理器增加GLOG_USE_GLOG_EXPORT;GLOG_NO_AB…

Python开发环境搭建+conda管理环境

下载Miniconda 推荐从清华镜像下载安装包 Index of /anaconda/miniconda/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 打开网页后&#xff0c;下拉到最后找到Miniconda3-latest前缀的文件&#xff0c;或者网页中直接搜索Miniconda3-latest&#xff0c;都可以找…

深度学习:GPT-2的MindSpore实践

GPT-2简介 GPT-2是一个由OpenAI于2019年提出的自回归语言模型。与GPT-1相比&#xff0c;仍基于Transformer Decoder架构&#xff0c;但是做出了一定改进。 模型规格上&#xff1a; GPT-1有117M参数&#xff0c;为下游微调任务提供预训练模型。 GPT-2显著增加了模型规模&…

C++设计模式-策略模式-StrategyMethod

动机&#xff08;Motivation&#xff09; 在软件构建过程中&#xff0c;某些对象使用的算法可能多种多样&#xff0c;经常改变&#xff0c;如果将这些算法都编码到对象中&#xff0c;将会使对象变得异常复杂&#xff1b;而且有时候支持不使用的算法也是一个性能负担。 如何在运…

Harbor安装、HTTPS配置、修改端口后不可访问?

Harbor安装、HTTPS配置、修改端口后不可访问&#xff1f; 大家好&#xff0c;我是秋意零。今天分享Harbor相关内容&#xff0c;安装部分可完全参考官方文档&#xff0c;写的也比较详细。 安装Harbor 官方文档&#xff1a;https://goharbor.io/docs/2.12.0/install-config/ …