AlmaLinux 云计算平台使用指南
本指南详细介绍如何在国内外主流云计算平台上部署和使用 AlmaLinux,包括阿里云、腾讯云、华为云、AWS、Azure 等平台。
1. 云平台选择对比
1.1 国内云平台对比
云平台 | AlmaLinux 支持 | 定价优势 | 网络质量 | 技术支持 | 推荐场景 |
---|---|---|---|---|---|
阿里云 | 官方镜像 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 企业级应用 |
腾讯云 | 官方镜像 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 游戏、社交应用 |
华为云 | 官方镜像 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 政企市场 |
百度云 | 自定义镜像 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | AI 相关应用 |
UCloud | 自定义镜像 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐ | 中小企业 |
1.2 国际云平台对比
云平台 | AlmaLinux 支持 | 全球覆盖 | 服务生态 | 定价透明度 | 推荐场景 |
---|---|---|---|---|---|
AWS | 官方 AMI | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 全球化企业 |
Azure | 官方镜像 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 混合云环境 |
Google Cloud | 官方镜像 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 大数据分析 |
DigitalOcean | 官方镜像 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 开发者友好 |
2. 阿里云 ECS 部署
2.1 创建 ECS 实例
bash
# 安装阿里云 CLI
wget https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz
tar -xzf aliyun-cli-linux-latest-amd64.tgz
sudo mv aliyun /usr/local/bin/
# 配置访问密钥
aliyun configure set \
--profile default \
--mode AK \
--region cn-hangzhou \
--access-key-id YOUR_ACCESS_KEY_ID \
--access-key-secret YOUR_ACCESS_KEY_SECRET
控制台创建步骤:
- 基础配置
地域: 华东1(杭州) / 根据需求选择
实例: ecs.c6.large (2核4GB)
镜像: AlmaLinux 9.3 64位
存储: 40GB 高效云盘
网络: 专有网络 VPC
安全组: 开放 22(SSH)、80(HTTP)、443(HTTPS) 端口
- 网络配置
bash
# 创建专有网络
aliyun vpc CreateVpc \
--RegionId cn-hangzhou \
--VpcName "AlmaLinux-VPC" \
--CidrBlock "192.168.0.0/16"
# 创建交换机
aliyun vpc CreateVSwitch \
--VpcId vpc-xxxxx \
--VSwitchName "AlmaLinux-Switch" \
--CidrBlock "192.168.1.0/24" \
--ZoneId cn-hangzhou-b
- 安全组配置
bash
# 创建安全组
aliyun ecs CreateSecurityGroup \
--RegionId cn-hangzhou \
--GroupName "AlmaLinux-SG" \
--Description "AlmaLinux Security Group" \
--VpcId vpc-xxxxx
# 添加安全组规则
aliyun ecs AuthorizeSecurityGroup \
--RegionId cn-hangzhou \
--SecurityGroupId sg-xxxxx \
--IpProtocol tcp \
--PortRange 22/22 \
--SourceCidrIp 0.0.0.0/0
2.2 初始化配置
bash
# 连接到 ECS 实例
ssh root@YOUR_ECS_PUBLIC_IP
# 更新系统并配置阿里云镜像源
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=https://repo.almalinux.org|baseurl=https://mirrors.aliyun.com/almalinux|g' \
-i.bak /etc/yum.repos.d/almalinux*.repo
# 更新系统
dnf update -y
# 安装阿里云助手
wget https://ecs-instance-driver.oss-cn-hangzhou.aliyuncs.com/cloud-assistant/aliyun_assist_latest.rpm
rpm -ivh aliyun_assist_latest.rpm
systemctl enable aliyun.service
2.3 优化配置
bash
# 安装阿里云监控插件
wget https://cms-agent-cn-hangzhou.oss-cn-hangzhou-internal.aliyuncs.com/release/cms_go_agent/cms_go_agent_linux-amd64.tar.gz
tar -xzf cms_go_agent_linux-amd64.tar.gz
cd cms_go_agent_linux-amd64
sudo ./install.sh
# 配置NTP同步
dnf install chrony -y
echo "server ntp.aliyun.com iburst" >> /etc/chrony.conf
systemctl enable chronyd
systemctl restart chronyd
# 优化网络性能
echo 'net.core.rmem_max = 134217728' >> /etc/sysctl.conf
echo 'net.core.wmem_max = 134217728' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_rmem = 4096 32768 134217728' >> /etc/sysctl.conf
sysctl -p
3. 腾讯云 CVM 部署
3.1 创建 CVM 实例
bash
# 安装腾讯云 CLI
pip3 install tencentcloud-cli
# 配置访问密钥
tccli configure set secretId YOUR_SECRET_ID
tccli configure set secretKey YOUR_SECRET_KEY
tccli configure set region ap-guangzhou
控制台创建流程:
- 实例配置
地域: 广州 / 根据业务需求选择
机型: S5.MEDIUM4 (2核4GB)
镜像: AlmaLinux 9.3
系统盘: 50GB 高性能云硬盘
网络: 私有网络 VPC
带宽: 按量计费 5Mbps
- 网络安全配置
bash
# 创建私有网络
tccli vpc CreateVpc \
--VpcName "AlmaLinux-VPC" \
--CidrBlock "10.0.0.0/16"
# 创建子网
tccli vpc CreateSubnet \
--VpcId vpc-xxxxx \
--SubnetName "AlmaLinux-Subnet" \
--CidrBlock "10.0.1.0/24" \
--Zone ap-guangzhou-3
# 创建安全组
tccli cvm CreateSecurityGroup \
--GroupName "AlmaLinux-SG" \
--GroupDescription "AlmaLinux Security Group"
3.2 系统优化
bash
# 配置腾讯云镜像源
cat > /etc/yum.repos.d/tencent.repo << 'EOF'
[tencent-base]
name=Tencent Cloud Base
baseurl=https://mirrors.cloud.tencent.com/almalinux/$releasever/BaseOS/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
[tencent-appstream]
name=Tencent Cloud AppStream
baseurl=https://mirrors.cloud.tencent.com/almalinux/$releasever/AppStream/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux
EOF
# 安装腾讯云监控插件
wget https://mirrors.tencentyun.com/install/monitor_agent/linux/stargate_install.sh
chmod +x stargate_install.sh
./stargate_install.sh
# 配置DNS
echo "nameserver 183.60.83.19" > /etc/resolv.conf
echo "nameserver 183.60.82.98" >> /etc/resolv.conf
4. 华为云 ECS 部署
4.1 实例创建配置
bash
# 安装华为云 CLI
pip3 install huaweicloudsdkcore huaweicloudsdkecs
# 配置华为云环境
export HUAWEICLOUD_SDK_AK="YOUR_ACCESS_KEY"
export HUAWEICLOUD_SDK_SK="YOUR_SECRET_KEY"
控制台配置要点:
- 基础设置
区域: 华北-北京四
规格: s6.large.2 (2核4GB)
镜像: AlmaLinux 9.3 64bit
系统盘: 40GB 高IO
网络: 虚拟私有云
安全组: 开放必要端口
- 网络优化
bash
# 配置华为云内网DNS
echo "nameserver 100.125.1.250" > /etc/resolv.conf
echo "nameserver 100.125.129.250" >> /etc/resolv.conf
# 配置华为云软件源
sed -i 's|repo.almalinux.org|mirrors.huaweicloud.com/almalinux|g' /etc/yum.repos.d/almalinux*.repo
# 安装华为云服务
dnf install hwcloudsec-plugin -y
systemctl enable hwcloudsec-plugin
4.2 存储优化
bash
# 安装云硬盘挂载工具
dnf install lvm2 -y
# 创建LVM卷组 (假设有额外数据盘 /dev/vdb)
pvcreate /dev/vdb
vgcreate data-vg /dev/vdb
lvcreate -l 100%FREE -n data-lv data-vg
# 格式化并挂载
mkfs.xfs /dev/data-vg/data-lv
mkdir /data
echo '/dev/data-vg/data-lv /data xfs defaults 0 0' >> /etc/fstab
mount -a
5. AWS EC2 部署
5.1 创建 EC2 实例
bash
# 安装 AWS CLI
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# 配置 AWS 凭证
aws configure
# AWS Access Key ID: YOUR_ACCESS_KEY
# AWS Secret Access Key: YOUR_SECRET_KEY
# Default region name: us-east-1
# Default output format: json
EC2 创建配置:
bash
# 查找 AlmaLinux AMI
aws ec2 describe-images \
--owners 792107900819 \
--filters "Name=name,Values=AlmaLinux-9*" \
--query 'Images[*].[ImageId,Name,CreationDate]' \
--output table
# 创建密钥对
aws ec2 create-key-pair \
--key-name almalinux-keypair \
--query 'KeyMaterial' \
--output text > almalinux-keypair.pem
chmod 400 almalinux-keypair.pem
# 创建安全组
aws ec2 create-security-group \
--group-name almalinux-sg \
--description "AlmaLinux Security Group"
# 开放端口
aws ec2 authorize-security-group-ingress \
--group-name almalinux-sg \
--protocol tcp \
--port 22 \
--cidr 0.0.0.0/0
5.2 实例启动和配置
bash
# 启动 EC2 实例
aws ec2 run-instances \
--image-id ami-xxxxx \
--count 1 \
--instance-type t3.medium \
--key-name almalinux-keypair \
--security-groups almalinux-sg \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=AlmaLinux-Server}]'
# 连接到实例
ssh -i almalinux-keypair.pem ec2-user@YOUR_EC2_PUBLIC_IP
# 安装 AWS CLI 和 CloudWatch 代理
sudo dnf install awscli amazon-cloudwatch-agent -y
# 配置 CloudWatch 代理
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
6. Microsoft Azure 部署
6.1 创建 Azure VM
bash
# 安装 Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# 登录 Azure
az login
# 创建资源组
az group create \
--name AlmaLinux-RG \
--location eastus
# 创建虚拟网络
az network vnet create \
--resource-group AlmaLinux-RG \
--name AlmaLinux-VNet \
--address-prefix 10.0.0.0/16 \
--subnet-name AlmaLinux-Subnet \
--subnet-prefix 10.0.1.0/24
6.2 VM 配置和优化
bash
# 创建网络安全组
az network nsg create \
--resource-group AlmaLinux-RG \
--name AlmaLinux-NSG
# 添加SSH规则
az network nsg rule create \
--resource-group AlmaLinux-RG \
--nsg-name AlmaLinux-NSG \
--name SSH \
--protocol tcp \
--priority 1001 \
--destination-port-range 22
# 创建虚拟机
az vm create \
--resource-group AlmaLinux-RG \
--name AlmaLinux-VM \
--image AlmaLinux:AlmaLinux-x86_64:9_3:latest \
--size Standard_B2s \
--admin-username azureuser \
--generate-ssh-keys \
--vnet-name AlmaLinux-VNet \
--subnet AlmaLinux-Subnet \
--nsg AlmaLinux-NSG \
--public-ip-sku Standard
7. 云平台通用优化
7.1 安全配置
bash
# 配置防火墙
systemctl enable firewalld
systemctl start firewalld
# 只开放必要端口
firewall-cmd --permanent --add-service=ssh
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
# SSH 安全加固
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart sshd
# 安装 fail2ban
dnf install epel-release -y
dnf install fail2ban -y
systemctl enable fail2ban
systemctl start fail2ban
7.2 监控配置
bash
# 安装系统监控工具
dnf install htop iotop nethogs glances -y
# 配置日志轮转
cat > /etc/logrotate.d/cloud-logs << 'EOF'
/var/log/cloud-init*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
}
EOF
# 设置系统资源限制
echo "* soft nofile 65536" >> /etc/security/limits.conf
echo "* hard nofile 65536" >> /etc/security/limits.conf
echo "* soft nproc 32768" >> /etc/security/limits.conf
echo "* hard nproc 32768" >> /etc/security/limits.conf
7.3 备份策略
bash
# 创建备份脚本
cat > /root/cloud-backup.sh << 'EOF'
#!/bin/bash
# 云平台备份脚本
BACKUP_DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backup/${BACKUP_DATE}"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份系统配置
tar -czf $BACKUP_DIR/system-config.tar.gz \
/etc /root/.ssh /var/spool/cron 2>/dev/null
# 备份应用数据 (根据实际情况调整)
# tar -czf $BACKUP_DIR/app-data.tar.gz /var/www /opt/apps 2>/dev/null
# 备份数据库 (如果有)
# mysqldump --all-databases > $BACKUP_DIR/mysql.sql 2>/dev/null
# 上传到云存储 (示例: 阿里云OSS)
# ossutil cp $BACKUP_DIR oss://your-bucket/backups/ -r
echo "Backup completed: $BACKUP_DIR"
EOF
chmod +x /root/cloud-backup.sh
# 设置定时备份
echo "0 2 * * * /root/cloud-backup.sh" | crontab -
8. 云原生应用部署
8.1 Docker 环境
bash
# 安装 Docker
dnf config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
dnf install docker-ce docker-ce-cli containerd.io -y
# 配置 Docker 镜像加速
mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://registry.cn-hangzhou.aliyuncs.com",
"https://mirror.ccs.tencentyun.com",
"https://hub-mirror.c.163.com"
]
}
EOF
systemctl enable docker
systemctl start docker
8.2 Kubernetes 集群
bash
# 安装 kubeadm
cat > /etc/yum.repos.d/kubernetes.repo << 'EOF'
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
dnf install kubelet kubeadm kubectl -y
systemctl enable kubelet
# 初始化集群 (主节点)
kubeadm init \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--pod-network-cidr=192.168.0.0/16 \
--service-cidr=10.96.0.0/12
# 配置 kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
9. 成本优化策略
9.1 实例规格优化
bash
# 监控资源使用情况
cat > /root/resource-monitor.sh << 'EOF'
#!/bin/bash
# CPU 使用率监控
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)
echo "CPU Usage: ${CPU_USAGE}%"
# 内存使用率监控
MEM_USAGE=$(free | grep Mem | awk '{printf("%.2f"), $3/$2 * 100.0}')
echo "Memory Usage: ${MEM_USAGE}%"
# 磁盘使用率监控
DISK_USAGE=$(df -h / | tail -1 | awk '{print $5}' | cut -d'%' -f1)
echo "Disk Usage: ${DISK_USAGE}%"
# 如果资源使用率长期较低,建议降配
if [ $CPU_USAGE -lt 20 ] && [ ${MEM_USAGE%.*} -lt 50 ]; then
echo "建议考虑降低实例规格以节省成本"
fi
EOF
chmod +x /root/resource-monitor.sh
9.2 自动化运维
bash
# 安装 Terraform
wget https://releases.hashicorp.com/terraform/1.6.0/terraform_1.6.0_linux_amd64.zip
unzip terraform_1.6.0_linux_amd64.zip
sudo mv terraform /usr/local/bin/
# 创建基础设施代码 (示例: 阿里云)
cat > main.tf << 'EOF'
terraform {
required_providers {
alicloud = {
source = "aliyun/alicloud"
version = "~> 1.200"
}
}
}
provider "alicloud" {
region = "cn-hangzhou"
}
resource "alicloud_instance" "almalinux" {
availability_zone = "cn-hangzhou-b"
instance_name = "almalinux-terraform"
image_id = "almalinux_9_3_x64_20G_alibase"
instance_type = "ecs.c6.large"
security_groups = [alicloud_security_group.default.id]
vswitch_id = alicloud_vswitch.default.id
}
EOF
10. 故障排除和最佳实践
10.1 常见问题解决
bash
# 网络连接问题
# 检查安全组配置
# 检查路由表配置
# 验证DNS解析
# 性能问题诊断
iostat -x 1 5 # 磁盘I/O
vmstat 1 5 # 系统资源
netstat -i # 网络接口
# 云平台特定问题
# 检查云助手状态
systemctl status aliyun.service # 阿里云
systemctl status qcloud-assist # 腾讯云
10.2 安全最佳实践
bash
# 定期安全扫描
dnf install lynis -y
lynis audit system
# 配置入侵检测
dnf install aide -y
aide --init
mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# 设置定期检查
echo "0 3 * * * /usr/sbin/aide --check" | crontab -
通过本指南,您可以在各大云计算平台上成功部署 AlmaLinux,并进行相应的优化配置,确保系统在云环境中的稳定性和安全性。