44、Hyper-V 高可用性与容器入门指南

Hyper-V 高可用性与容器入门指南

在当今的 IT 环境中,Hyper-V 的高可用性以及容器技术对于保障系统稳定运行和高效应用部署至关重要。下面将详细介绍 Hyper-V 相关的复制、迁移、集群配置以及容器的基础知识。

一、Hyper-V 虚拟机复制设置

当 Hyper-V 副本主机设置完成后,就可以对虚拟机进行复制配置,具体步骤如下:
1. 打开 Hyper-V 管理器,右键单击虚拟机,选择“启用复制”。
2. 在“开始之前”屏幕,点击“下一步”。
3. 在“指定副本服务器”屏幕,输入之前配置的服务器名称,然后点击“下一步”。
4. 在“指定连接参数”屏幕,确认显示的信息正确。
5. 点击“下一步”。
6. 在“选择复制 VHD”屏幕,选择要复制的虚拟磁盘,通常选择全部,但如果不想复制某个驱动器,可以取消勾选,然后点击“下一步”。
7. 在“配置复制频率”屏幕,设置复制周期的时间间隔,可以选择 30 秒、5 分钟(默认)或 15 分钟,这里选择 5 分钟,然后点击“下一步”。
8. 在“配置其他恢复点”屏幕,保持“仅保留最新恢复点”设置,然后点击“下一步”。如果担心驱动器上的数据损坏,可以设置每小时保存额外的恢复点,这样在系统受到勒索软件或其他恶意活动影响时,可以恢复到良好的恢复点。
9. 在“选择初始复制方法”屏幕,选择“通过网络发送初始副本并立即开始复制”。
10. 在摘要页面,确认设置正确后,点击“完成”。

复制成功后,会收到提示信息,告知需要连接虚拟机的网络适配器。

二、Hyper-V 实时迁移

Hyper-V 副本适用于灾难恢复,但有时需要将虚拟机迁移到其他 Hyper-V 主机进行维护,或者因为主机资源受限而迁移虚拟机。实时迁移可以实现近乎零停机的虚拟机迁移,在实验室环境测试时,最多只会丢失一次 ping 包。

实时迁移有两种设置方式:
- CredSSP :设置最简单,但安全性最低。使用此方法支持实时迁移时,需要登录要迁移的服务器。如果迁移服务器后,在维护后想将其迁回,需要先登录虚拟机才能迁回。若未登录就尝试迁移,会出现“安全包中没有可用的凭据”的错误。由于 CredSSP 无需进一步配置,启用实时迁移即可。
- Kerberos :在企业环境中更受青睐,因为迁移前无需登录服务器,适合自动化操作。但设置约束委派使其实现更复杂。

实时迁移设置步骤
  1. 打开 Hyper-V 管理器,右键单击 Hyper-V 主机,选择“Hyper-V 设置”。
  2. 点击“实时迁移”,选中“启用传入和传出实时迁移”旁边的复选框。同时进行的实时迁移默认值为 2,除非有特殊原因,否则可保持不变。
  3. 在“传入实时迁移”下,保持“使用任何可用网络进行实时迁移”选中状态,然后点击“确定”。
Kerberos 约束委派设置步骤
  1. 从服务器管理器中,选择“工具” -> “Active Directory 用户和计算机”。
  2. 双击“计算机”文件夹。
  3. 右键单击要作为源服务器的 Hyper-V 主机,选择“属性”。
  4. 点击“委派”选项卡,选择“仅信任此计算机委派到指定服务”,并选择“使用任何身份验证协议”。
  5. 点击“添加”,然后点击“用户或计算机”。
  6. 输入目标服务器的名称,然后点击“确定”。
  7. 在“可用服务”下,按住 Ctrl 键同时选择以下两项:
    • cifs:允许移动虚拟机存储。
    • Microsoft 虚拟系统迁移服务:允许移动虚拟机。
  8. 点击“确定”。
  9. 再次点击“确定”保存更改。
  10. 对参与实时迁移的其他 Hyper-V 主机重复步骤 3 - 9。
启动实时迁移步骤
  1. 在源 Hyper-V 主机上,打开 Hyper-V 管理器。
  2. 右键单击要迁移的虚拟机,选择“移动”。
  3. 在“开始之前”屏幕,点击“下一步”。
  4. 选择“移动虚拟机”,然后点击“下一步”。
  5. 在“指定目标计算机”屏幕,输入目标 Hyper-V 主机的名称,然后点击“下一步”。
  6. 在“选择移动选项”屏幕,保持默认的“将虚拟机的数据移动到单个位置”,然后点击“下一步”。移动虚拟机有以下几种选项:
    • 将虚拟机的数据移动到单个位置:将虚拟机及其硬盘移动到目标主机的同一位置。
    • 通过选择移动项目的位置来移动虚拟机的数据:允许为虚拟机和其磁盘选择不同的位置。
    • 仅移动虚拟机:移动虚拟机但不移动其硬盘。
  7. 在“为虚拟机选择新位置”屏幕,设置目标服务器上要存储虚拟机文件的位置,然后点击“下一步”。
  8. 在“完成移动向导”屏幕,验证设置正确后,点击“完成”。

迁移完成后,虚拟机将显示在目标 Hyper-V 主机上。

三、Hyper-V 存储迁移

有时需要移动虚拟机的存储,例如购买了高速存储区域网络(SAN)或添加了新驱动器来支持 Hyper-V 虚拟机的虚拟磁盘。以下是移动存储的步骤:
1. 在源 Hyper-V 主机上,打开 Hyper-V 管理器。
2. 右键单击要迁移的虚拟机,选择“移动”。
3. 在“开始之前”屏幕,点击“下一步”。
4. 选择“移动虚拟机的存储”,然后点击“下一步”。
5. 接受默认的“将虚拟机的所有数据移动到单个位置”,然后点击“下一步”。
6. 在“为虚拟机选择新位置”屏幕,输入要将存储移动到的路径,然后点击“下一步”。
7. 在“完成移动向导”屏幕,验证一切正确后,点击“完成”。

四、Hyper-V 故障转移群集

故障转移群集在 Windows Server 2022 中并非新功能,它为系统管理员提供了确保系统高可用性的方法。应用程序或服务与群集地址通信,在 Hyper-V 中,群集地址是 Hyper-V 副本代理,负责处理群集 Hyper-V 主机的通信。

安装故障转移群集步骤
  1. 从服务器管理器中,选择“管理” -> “添加角色和功能”。
  2. 在“开始之前”屏幕,点击“下一步”。
  3. 在“选择安装类型”屏幕,点击“下一步”。
  4. 在“选择目标服务器”屏幕,点击“下一步”。
  5. 在“选择服务器角色”屏幕,点击“下一步”。
  6. 在“选择功能”屏幕,选择“故障转移群集”。
  7. 点击“添加功能”,然后点击“下一步”。
  8. 在“确认安装选择”屏幕,点击“安装”。
  9. 安装成功后,点击“关闭”。对故障转移群集的其他成员重复这些步骤。
配置故障转移群集步骤
  1. 从服务器管理器中,选择“工具” -> “故障转移群集管理器”。
  2. 点击“验证配置”。
  3. 在“开始之前”屏幕,点击“下一步”。
  4. 输入故障转移群集中服务器的名称,然后点击“下一步”。
  5. 接受默认的“运行所有测试”,然后点击“下一步”。
  6. 在确认屏幕,点击“下一步”。测试将开始运行,警告不一定会阻止创建故障转移群集,但在将其用于生产部署之前,应处理报告中的警告项。
  7. 测试完成后,选中“现在使用经过验证的节点创建群集”旁边的复选框,然后点击“完成”。创建群集向导将启动。
  8. 在“开始之前”屏幕,点击“下一步”。
  9. 在“管理群集的访问点”屏幕,选择一个群集名称,然后点击“下一步”。
  10. 在确认屏幕,点击“下一步”。
  11. 摘要页面出现时,点击“完成”。
  12. 点击“配置角色”。
  13. 在“开始之前”屏幕,点击“下一步”。
  14. 在“选择角色”屏幕,选择“Hyper-V 副本代理”,然后点击“下一步”。
  15. 在“客户端访问点”屏幕,输入群集角色的名称,然后点击“下一步”。
  16. 在确认屏幕,点击“下一步”。
  17. 在摘要页面,点击“完成”。
五、故障转移群集见证配置

在配置见证之前,先了解 Windows Server 故障转移群集中的不同仲裁类型,每个节点视为一票,仲裁决定了群集启动和正常运行所需的运行系统数量。

仲裁类型 描述
节点多数 当节点数量为奇数时使用。节点分为较小的子集,节点最多的子集拥有最多“票数”。例如,五个节点分为一个包含三个节点的子集和一个包含两个节点的子集,包含三个节点的子集将处于活动状态,因为三票多于两票。
节点与磁盘多数 当节点数量为偶数且有群集磁盘(磁盘见证)时效果很好。每个节点有一票,群集磁盘也有一票。磁盘见证为偶数子集增加额外一票,以确定哪个子集应处于活动状态。例如,四个节点分为两个各包含两个节点的子集,拥有群集磁盘的子集有第三票,将处于活动状态。
节点与文件共享多数 与节点与磁盘多数类似,不同之处在于使用文件共享见证而不是磁盘见证。它通常位于两个故障转移群集都能访问的数据中心,为群集提供与磁盘见证相同的服务。例如,四个节点分为两个各包含两个节点的子集,拥有文件共享见证的子集有第三票,将处于活动状态。

故障转移群集中可以使用的见证类型有:
- 磁盘见证 :大多数系统管理员在使用故障转移群集时熟悉的见证类型,是一个可以在故障转移群集节点之间进行故障转移的小驱动器。
- 文件共享见证 :本质上是一个配置了共享的文件服务器,用于存储群集信息。通常将带有共享的文件服务器放置在与故障转移群集中其他节点不同的数据中心。如果一个数据中心出现故障,文件共享见证可以为现有数据中心投出决定性一票。
- 云见证 :在 Windows Server 2016 中引入,允许在 Azure 中创建 Blob 存储并用于存储群集信息,是一种经济高效的方式,可提供与文件共享见证类似的功能,而无需在另一个数据中心设置额外的文件服务器。

以下是添加文件共享见证的步骤:
1. 在故障转移群集管理器中,选择要添加文件共享见证的群集。
2. 在右侧的“操作”菜单中,点击“更多操作”,然后点击“配置群集仲裁设置”。
3. 在“开始之前”屏幕,点击“下一步”。
4. 在“选择仲裁配置选项”中,选择“选择仲裁见证”,然后点击“下一步”。
5. 在“选择仲裁见证”屏幕,选择“配置文件共享见证”,然后点击“下一步”。
6. 输入配置的文件共享路径,然后点击“下一步”。
7. 在确认屏幕,点击“下一步”。
8. 点击“完成”。

六、容器简介

虚拟化极大地改变了各种规模组织的 IT 运营方式,容器也产生了重大影响。虽然容器和虚拟机技术看似相似,但它们并不相同。虚拟机向用户呈现虚拟硬件,而容器不暴露硬件或操作系统,旨在隔离运行应用程序。

容器具有以下特点和优势:
- 隔离性 :容器可以将应用程序及其依赖项封装在一个独立的环境中,避免不同应用程序之间的相互干扰。
- 轻量级 :相比于虚拟机,容器不需要模拟整个操作系统,因此占用资源更少,启动速度更快。
- 可移植性 :容器可以在不同的环境中运行,保证了应用程序在开发、测试和生产环境中的一致性。

在使用容器时,需要考虑以下几个方面:
- 理解容器 :了解容器在 Windows Server 2022 中的工作原理。
- 常见用例 :分析容器的常见应用场景,如微服务架构、持续集成/持续部署等。
- 容器类型选择 :根据具体需求选择合适的容器类型。
- 大规模实施 :考虑如何在大规模环境中部署和管理容器。

通过以上对 Hyper-V 和容器的介绍,希望能帮助你更好地管理和应用这些技术,提高系统的可用性和应用部署的效率。

Hyper-V 高可用性与容器入门指南

七、容器技术深入探讨
容器技术架构

容器技术的核心在于其独特的架构设计,它主要由镜像、容器运行时和编排工具三部分组成。
- 镜像 :镜像是容器的基础,它包含了应用程序及其依赖的所有文件和配置信息。镜像可以看作是一个只读的模板,用于创建容器。例如,一个基于 Linux 的 Web 应用程序镜像,会包含 Linux 操作系统的基本文件、Web 服务器软件(如 Nginx 或 Apache)以及应用程序代码。
- 容器运行时 :容器运行时负责创建和管理容器的生命周期。常见的容器运行时有 Docker 和 containerd。它们根据镜像创建容器实例,并提供资源隔离和管理的功能。例如,Docker 可以通过简单的命令(如 docker run )来启动一个容器。
- 编排工具 :在大规模的容器部署中,编排工具是必不可少的。它可以自动化容器的部署、扩展和管理。Kubernetes 是目前最流行的容器编排工具,它可以根据集群的资源使用情况自动调整容器的数量和分布。

容器网络

容器网络是容器技术中的一个重要方面,它决定了容器之间以及容器与外部网络的通信方式。常见的容器网络模式有:
- 桥接模式 :这是 Docker 默认的网络模式。在桥接模式下,容器通过虚拟网桥与宿主机的网络进行连接。每个容器都有自己的 IP 地址,并且可以与宿主机和其他容器进行通信。
- 主机模式 :在主机模式下,容器直接使用宿主机的网络接口,与宿主机共享网络命名空间。这种模式下,容器的网络性能较高,但容器之间的网络隔离性较差。
- Overlay 网络 :Overlay 网络用于跨主机的容器通信。它通过在物理网络之上创建一个虚拟网络来实现容器之间的通信。Kubernetes 中的 Flannel 和 Calico 就是常用的 Overlay 网络插件。

以下是一个简单的 mermaid 流程图,展示了容器网络的通信流程:

graph LR
    classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;

    A(宿主机网络):::process --> B(虚拟网桥):::process
    B --> C(容器 1):::process
    B --> D(容器 2):::process
    C <--> D
    C --> E(外部网络):::process
    D --> E
八、容器存储管理
容器存储类型

容器存储主要分为以下几种类型:
- 临时存储 :临时存储是容器内部的存储,用于存储容器运行过程中的临时数据。当容器停止或删除时,临时存储中的数据也会被删除。
- 持久化存储 :持久化存储用于存储容器需要长期保存的数据,如数据库文件、日志文件等。常见的持久化存储方式有网络存储(如 NFS、iSCSI)和本地存储(如磁盘分区)。
- 存储卷 :存储卷是一种抽象的存储概念,它可以将宿主机的文件系统或网络存储挂载到容器内部。在 Kubernetes 中,可以使用 PersistentVolume 和 PersistentVolumeClaim 来管理存储卷。

容器存储配置步骤

以下是在 Docker 中配置持久化存储的步骤:
1. 创建一个本地目录作为存储卷的挂载点:

mkdir /data/container-storage
  1. 启动容器时,将本地目录挂载到容器内部:
docker run -d -v /data/container-storage:/app/storage my-app-image

在这个例子中, /data/container-storage 是宿主机上的目录, /app/storage 是容器内部的目录。

九、容器安全
容器安全威胁

容器安全面临着多种威胁,主要包括:
- 镜像安全 :镜像可能包含恶意软件或漏洞。如果使用了不安全的镜像,容器就会面临安全风险。例如,一些公开的镜像可能被黑客注入了后门程序。
- 容器逃逸 :容器逃逸是指容器内的进程突破容器的隔离机制,访问宿主机的资源。这可能导致宿主机被攻击或数据泄露。
- 网络安全 :容器网络的配置不当可能导致网络攻击。例如,容器开放了不必要的端口,可能会被黑客利用进行攻击。

容器安全防护措施

为了保障容器的安全,可以采取以下措施:
- 镜像扫描 :在使用镜像之前,对镜像进行扫描,检测其中是否包含漏洞和恶意软件。常见的镜像扫描工具有 Trivy 和 Clair。
- 访问控制 :限制容器对宿主机资源的访问权限。可以通过设置容器的安全上下文(如 SELinux 或 AppArmor)来实现。
- 网络隔离 :合理配置容器网络,避免容器之间的不必要通信。例如,使用防火墙规则限制容器的网络访问。

十、容器与 DevOps 集成
DevOps 流程中的容器应用

在 DevOps 流程中,容器技术可以发挥重要作用,实现持续集成和持续部署(CI/CD)。以下是一个典型的 DevOps 流程中容器的应用步骤:
1. 代码提交 :开发人员将代码提交到代码仓库(如 Git)。
2. 构建镜像 :CI 工具(如 Jenkins 或 GitLab CI/CD)从代码仓库获取代码,并根据 Dockerfile 构建容器镜像。
3. 测试 :在构建好的镜像中运行自动化测试,确保代码的质量。
4. 部署 :CD 工具将测试通过的镜像部署到生产环境中。可以使用 Kubernetes 等编排工具来自动化部署过程。

容器化的 CI/CD 示例

以下是一个使用 GitLab CI/CD 实现容器化 CI/CD 的示例:

image: docker:latest

services:
  - docker:dind

stages:
  - build
  - test
  - deploy

build:
  stage: build
  script:
    - docker build -t my-app-image .
    - docker push my-app-image

test:
  stage: test
  script:
    - docker run my-app-image pytest

deploy:
  stage: deploy
  script:
    - kubectl apply -f deployment.yaml

在这个示例中,GitLab CI/CD 会根据 gitlab-ci.yml 文件中的配置,依次执行构建、测试和部署的任务。

通过对容器技术的深入探讨,我们可以看到容器在现代 IT 环境中的重要性和广泛应用。结合 Hyper-V 的高可用性技术,能够进一步提升系统的稳定性和应用部署的效率,为企业的数字化转型提供有力支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值