Linux云服务管理命令和技巧
Linux云服务管理命令和技巧
云服务概述
云服务是一种通过网络提供计算资源、存储资源和应用程序的服务模式。它可以帮助用户快速部署和管理应用程序,减少基础设施成本,提高资源利用率。Linux系统是云服务的主要操作系统,本文将介绍Linux系统中常用的云服务管理命令和技巧,帮助用户更高效地管理和使用云服务。
主要云服务提供商
公共云
- Amazon Web Services (AWS):全球最大的云服务提供商,提供丰富的云服务产品。
- Microsoft Azure:微软的云服务平台,提供企业级云服务。
- Google Cloud Platform (GCP):谷歌的云服务平台,提供高性能的云服务。
- Alibaba Cloud:阿里巴巴的云服务平台,提供亚太地区领先的云服务。
- Tencent Cloud:腾讯的云服务平台,提供国内领先的云服务。
私有云
- OpenStack:开源的云操作系统,用于构建私有云。
- VMware vSphere: VMware的虚拟化平台,用于构建私有云。
- Microsoft Hyper-V:微软的虚拟化平台,用于构建私有云。
- Kubernetes:开源的容器编排平台,用于构建容器云。
云服务管理工具
AWS CLI
AWS CLI是Amazon Web Services的命令行工具,用于管理AWS资源。
安装AWS CLI
# 安装AWS CLI v2(Linux)curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install
# 验证AWS CLI安装aws --version
# 配置AWS CLIaws configure# 输入AWS Access Key ID、AWS Secret Access Key、Default region name、Default output format使用AWS CLI
# 查看AWS CLI配置aws configure list
# 查看EC2实例aws ec2 describe-instances
# 启动EC2实例aws ec2 start-instances --instance-ids i-1234567890abcdef0
# 停止EC2实例aws ec2 stop-instances --instance-ids i-1234567890abcdef0
# 创建S3存储桶aws s3 mb s3://bucket-name
# 上传文件到S3存储桶aws s3 cp file.txt s3://bucket-name/
# 下载文件从S3存储桶aws s3 cp s3://bucket-name/file.txt .
# 列出S3存储桶中的文件aws s3 ls s3://bucket-name/
# 删除S3存储桶中的文件aws s3 rm s3://bucket-name/file.txt
# 删除S3存储桶aws s3 rb s3://bucket-name --force
# 查看Lambda函数aws lambda list-functions
# 查看SNS主题aws sns list-topics
# 查看SQS队列aws sqs list-queues
# 查看RDS实例aws rds describe-db-instances
# 查看DynamoDB表aws dynamodb list-tablesAzure CLI
Azure CLI是Microsoft Azure的命令行工具,用于管理Azure资源。
安装Azure CLI
# 安装Azure CLI(Debian/Ubuntu)curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
# 安装Azure CLI(RHEL/CentOS)sudo rpm --import https://packages.microsoft.com/keys/microsoft.ascsudo sh -c 'echo -e "[azure-cli]name=Azure CLIbaseurl=https://packages.microsoft.com/yumrepos/azure-clienabled=1gpgcheck=1gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'sudo yum install -y azure-cli
# 验证Azure CLI安装az --version
# 登录Azureaz login# 在浏览器中打开提供的URL,输入代码进行登录使用Azure CLI
# 查看Azure订阅az account list
# 查看Azure资源组az group list
# 创建Azure资源组az group create --name resource-group-name --location eastus
# 查看Azure虚拟机az vm list
# 创建Azure虚拟机az vm create --resource-group resource-group-name --name vm-name --image UbuntuLTS --admin-username azureuser --generate-ssh-keys
# 启动Azure虚拟机az vm start --resource-group resource-group-name --name vm-name
# 停止Azure虚拟机az vm stop --resource-group resource-group-name --name vm-name
# 查看Azure存储账户az storage account list
# 创建Azure存储账户az storage account create --name storage-account-name --resource-group resource-group-name --location eastus --sku Standard_LRS
# 查看Azure Blob容器az storage container list --account-name storage-account-name --account-key account-key
# 创建Azure Blob容器az storage container create --name container-name --account-name storage-account-name --account-key account-key
# 上传文件到Azure Blob容器az storage blob upload --container-name container-name --name blob-name --file file.txt --account-name storage-account-name --account-key account-key
# 下载文件从Azure Blob容器az storage blob download --container-name container-name --name blob-name --file file.txt --account-name storage-account-name --account-key account-key
# 查看Azure App Serviceaz webapp list
# 创建Azure App Serviceaz webapp create --resource-group resource-group-name --plan app-service-plan-name --name webapp-name --runtime "NODE|14-lts"Google Cloud CLI
Google Cloud CLI是Google Cloud Platform的命令行工具,用于管理GCP资源。
安装Google Cloud CLI
# 下载Google Cloud CLIcurl https://sdk.cloud.google.com | bash
# 重启终端exec -l $SHELL
# 初始化Google Cloud CLIgcloud init# 登录Google账号,选择项目和区域
# 验证Google Cloud CLI安装gcloud --version使用Google Cloud CLI
# 查看当前项目gcloud config get-value project
# 列出项目gcloud projects list
# 设置项目gcloud config set project project-id
# 查看Compute Engine实例gcloud compute instances list
# 创建Compute Engine实例gcloud compute instances create instance-name --machine-type n1-standard-1 --image-family ubuntu-2004-lts --image-project ubuntu-os-cloud
# 启动Compute Engine实例gcloud compute instances start instance-name
# 停止Compute Engine实例gcloud compute instances stop instance-name
# 查看Cloud Storage存储桶gcloud storage buckets list
# 创建Cloud Storage存储桶gcloud storage buckets create gs://bucket-name
# 上传文件到Cloud Storage存储桶gcloud storage cp file.txt gs://bucket-name/
# 下载文件从Cloud Storage存储桶gcloud storage cp gs://bucket-name/file.txt .
# 查看Cloud Functionsgcloud functions list
# 查看Cloud SQL实例gcloud sql instances list
# 查看BigQuery数据集gcloud bigquery datasets listOpenStack CLI
OpenStack CLI是OpenStack的命令行工具,用于管理OpenStack资源。
安装OpenStack CLI
# 安装OpenStack CLI(使用pip)pip install python-openstackclient
# 验证OpenStack CLI安装openstack --version
# 配置OpenStack CLI# 编辑~/.openrc文件,添加以下内容# export OS_AUTH_URL=https://openstack-api-endpoint:5000/v3# export OS_PROJECT_ID=project-id# export OS_PROJECT_NAME="project-name"# export OS_USER_DOMAIN_NAME="Default"# export OS_PROJECT_DOMAIN_NAME="Default"# export OS_USERNAME="username"# export OS_PASSWORD="password"# export OS_REGION_NAME="region-name"# export OS_INTERFACE=public# export OS_IDENTITY_API_VERSION=3
# 加载OpenStack配置source ~/.openrc使用OpenStack CLI
# 查看OpenStack服务openstack service list
# 查看OpenStack端点openstack endpoint list
# 查看Nova实例openstack server list
# 创建Nova实例openstack server create --flavor m1.small --image ubuntu-20.04 --network private network instance-name
# 启动Nova实例openstack server start instance-name
# 停止Nova实例openstack server stop instance-name
# 查看Cinder卷openstack volume list
# 创建Cinder卷openstack volume create --size 10 volume-name
# 附加Cinder卷到Nova实例openstack server add volume instance-name volume-name
# 查看Neutron网络openstack network list
# 查看Swift存储桶openstack container list
# 创建Swift存储桶openstack container create container-name
# 上传文件到Swift存储桶openstack object create container-name file.txt
# 下载文件从Swift存储桶openstack object save container-name file.txtKubernetes CLI (kubectl)
kubectl是Kubernetes的命令行工具,用于管理Kubernetes集群。
安装kubectl
# 安装kubectl(Linux)curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"chmod +x kubectlsudo mv kubectl /usr/local/bin/
# 验证kubectl安装kubectl version --client
# 配置kubectl# 复制kubeconfig文件到~/.kube/config# 或者使用kubectl config命令配置使用kubectl
# 查看集群信息kubectl cluster-info
# 查看节点kubectl get nodes
# 查看Podkubectl get pods -A
# 查看服务kubectl get services -A
# 查看部署kubectl get deployments -A
# 创建Podkubectl run pod-name --image=nginx
# 删除Podkubectl delete pod pod-name
# 创建部署kubectl create deployment deployment-name --image=nginx
# 扩展部署kubectl scale deployment deployment-name --replicas=3
# 更新部署kubectl set image deployment deployment-name nginx=nginx:latest
# 查看Pod日志kubectl logs pod-name
# 进入Podkubectl exec -it pod-name -- /bin/bash云资源管理
虚拟机管理
启动和停止虚拟机
# AWSaws ec2 start-instances --instance-ids i-1234567890abcdef0aws ec2 stop-instances --instance-ids i-1234567890abcdef0
# Azureaz vm start --resource-group resource-group-name --name vm-nameaz vm stop --resource-group resource-group-name --name vm-name
# GCPgcloud compute instances start instance-name gcloud compute instances stop instance-name
# OpenStackopenstack server start instance-nameopenstack server stop instance-name
# Kuberneteskubectl scale deployment deployment-name --replicas=0 # 停止kubectl scale deployment deployment-name --replicas=3 # 启动创建和删除虚拟机
# AWSaws ec2 run-instances --image-id ami-0c55b159cbfafe1f0 --instance-type t2.micro --key-name key-pair-name --security-group-ids sg-12345678aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
# Azureaz vm create --resource-group resource-group-name --name vm-name --image UbuntuLTS --admin-username azureuser --generate-ssh-keysaz vm delete --resource-group resource-group-name --name vm-name --yes
# GCPgcloud compute instances create instance-name --machine-type n1-standard-1 --image-family ubuntu-2004-lts --image-project ubuntu-os-cloudgcloud compute instances delete instance-name --quiet
# OpenStackopenstack server create --flavor m1.small --image ubuntu-20.04 --network private network instance-nameopenstack server delete instance-name虚拟机监控
# AWSaws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --start-time 2026-02-05T00:00:00Z --end-time 2026-02-05T23:59:59Z --period 3600 --statistics Average
# Azureaz monitor metrics list --resource /subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachines/vm-name --metric cpuPercentage --start-time 2026-02-05T00:00:00Z --end-time 2026-02-05T23:59:59Z
# GCPgcloud monitoring metrics list --filter "metric.type=\"compute.googleapis.com/instance/cpu/utilization\""gcloud monitoring timeseries list --filter "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\" AND resource.label.instance_id=\"instance-id\"" --interval "startTime=2026-02-05T00:00:00Z,endTime=2026-02-05T23:59:59Z"
# Kuberneteskubectl top podkubectl top node存储管理
创建和删除存储
# AWS S3aws s3 mb s3://bucket-nameaws s3 rb s3://bucket-name --force
# AWS EBSaws ec2 create-volume --availability-zone us-east-1a --size 10 --volume-type gp2aws ec2 delete-volume --volume-id vol-1234567890abcdef0
# Azure Blob Storageaz storage account create --name storage-account-name --resource-group resource-group-name --location eastus --sku Standard_LRSaz storage account delete --name storage-account-name --resource-group resource-group-name --yes
# Azure Diskaz disk create --resource-group resource-group-name --name disk-name --size-gb 10 --sku Standard_LRSaz disk delete --resource-group resource-group-name --name disk-name --yes
# GCP Cloud Storagegcloud storage buckets create gs://bucket-namegcloud storage buckets delete gs://bucket-name
# GCP Persistent Diskgcloud compute disks create disk-name --size=10GB --zone=us-central1-agcloud compute disks delete disk-name --zone=us-central1-a --quiet
# OpenStack Cinderopenstack volume create --size 10 volume-nameopenstack volume delete volume-name
# Kubernetes Persistent Volumekubectl apply -f pv.yamlkubectl delete pv pv-name上传和下载文件
# AWS S3aws s3 cp file.txt s3://bucket-name/aws s3 cp s3://bucket-name/file.txt .
# Azure Blob Storageaz storage blob upload --container-name container-name --name blob-name --file file.txt --account-name storage-account-name --account-key account-keyaz storage blob download --container-name container-name --name blob-name --file file.txt --account-name storage-account-name --account-key account-key
# GCP Cloud Storagegcloud storage cp file.txt gs://bucket-name/gcloud storage cp gs://bucket-name/file.txt .
# OpenStack Swiftopenstack object create container-name file.txtopenstack object save container-name file.txt网络管理
创建和删除网络
# AWS VPCaws ec2 create-vpc --cidr-block 10.0.0.0/16aws ec2 delete-vpc --vpc-id vpc-12345678
# AWS Subnetaws ec2 create-subnet --vpc-id vpc-12345678 --cidr-block 10.0.0.0/24 --availability-zone us-east-1aaws ec2 delete-subnet --subnet-id subnet-12345678
# Azure Virtual Networkaz network vnet create --name vnet-name --resource-group resource-group-name --address-prefixes 10.0.0.0/16 --subnet-name subnet-name --subnet-prefixes 10.0.0.0/24az network vnet delete --name vnet-name --resource-group resource-group-name --yes
# GCP VPC Networkgcloud compute networks create network-name --subnet-mode customgcloud compute networks subnets create subnet-name --network network-name --region us-central1 --range 10.0.0.0/24gcloud compute networks delete network-name --quiet
# OpenStack Neutronopenstack network create network-nameopenstack subnet create --network network-name --subnet-range 10.0.0.0/24 subnet-nameopenstack network delete network-name
# Kubernetes Network Policykubectl apply -f network-policy.yamlkubectl delete networkpolicy network-policy-name配置安全组和防火墙
# AWS Security Groupaws ec2 create-security-group --group-name sg-name --description "SG Description" --vpc-id vpc-12345678aws ec2 authorize-security-group-ingress --group-id sg-12345678 --protocol tcp --port 22 --cidr 0.0.0.0/0aws ec2 delete-security-group --group-id sg-12345678
# Azure Network Security Groupaz network nsg create --name nsg-name --resource-group resource-group-nameaz network nsg rule create --name ssh-rule --nsg-name nsg-name --resource-group resource-group-name --priority 100 --source-address-prefixes '*' --destination-port-ranges 22 --access Allow --protocol Tcpaz network nsg delete --name nsg-name --resource-group resource-group-name --yes
# GCP Firewall Rulegcloud compute firewall-rules create allow-ssh --network network-name --allow tcp:22 --source-ranges 0.0.0.0/0gcloud compute firewall-rules delete allow-ssh --quiet
# OpenStack Security Groupopenstack security group create sg-nameopenstack security group rule create --protocol tcp --dst-port 22 sg-nameopenstack security group delete sg-name云服务部署
基础设施即代码 (IaC)
Terraform
Terraform是一个开源的基础设施即代码工具,用于构建、更改和版本管理基础设施。
# 安装Terraformwget https://releases.hashicorp.com/terraform/1.1.7/terraform_1.1.7_linux_amd64.zipunzip terraform_1.1.7_linux_amd64.zipsudo mv terraform /usr/local/bin/
# 验证Terraform安装terraform --version
# 初始化Terraformterraform init
# 查看Terraform计划terraform plan
# 应用Terraform配置terraform apply
# 销毁Terraform资源terraform destroy
# Terraform配置示例(AWS EC2实例)# provider "aws" {# region = "us-east-1"# }## resource "aws_instance" "example" {# ami = "ami-0c55b159cbfafe1f0"# instance_type = "t2.micro"## tags = {# Name = "ExampleInstance"# }# }CloudFormation
CloudFormation是AWS的基础设施即代码服务,用于创建和管理AWS资源。
# 创建CloudFormation堆栈aws cloudformation create-stack --stack-name stack-name --template-body file://template.yaml
# 查看CloudFormation堆栈aws cloudformation describe-stacks --stack-name stack-name
# 更新CloudFormation堆栈aws cloudformation update-stack --stack-name stack-name --template-body file://template.yaml
# 删除CloudFormation堆栈aws cloudformation delete-stack --stack-name stack-name
# CloudFormation模板示例(AWS EC2实例)# AWSTemplateFormatVersion: '2010-09-09'# Resources:# ExampleInstance:# Type: AWS::EC2::Instance# Properties:# ImageId: ami-0c55b159cbfafe1f0# InstanceType: t2.micro# Tags:# - Key: Name# Value: ExampleInstanceARM Templates
ARM Templates是Azure的基础设施即代码服务,用于创建和管理Azure资源。
# 创建ARM模板部署az deployment group create --resource-group resource-group-name --template-file template.json
# 查看ARM模板部署az deployment group show --resource-group resource-group-name --name deployment-name
# 删除ARM模板部署的资源# 使用az resource delete命令删除各个资源
# ARM模板示例(Azure VM)# {# "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",# "contentVersion": "1.0.0.0",# "resources": [# {# "type": "Microsoft.Compute/virtualMachines",# "apiVersion": "2021-03-01",# "name": "exampleVM",# "location": "[resourceGroup().location]",# "properties": {# "hardwareProfile": {# "vmSize": "Standard_B1s"# },# "osProfile": {# "computerName": "exampleVM",# "adminUsername": "azureuser",# "adminPassword": "Password12345!"# },# "storageProfile": {# "imageReference": {# "publisher": "Canonical",# "offer": "UbuntuServer",# "sku": "18.04-LTS",# "version": "latest"# },# "osDisk": {# "createOption": "FromImage"# }# },# "networkProfile": {# "networkInterfaces": [# {# "id": "[resourceId('Microsoft.Network/networkInterfaces', 'exampleVMNic')]"# }# ]# }# }# },# {# "type": "Microsoft.Network/networkInterfaces",# "apiVersion": "2021-03-01",# "name": "exampleVMNic",# "location": "[resourceGroup().location]",# "properties": {# "ipConfigurations": [# {# "name": "ipconfig1",# "properties": {# "subnet": {# "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', 'exampleVNet', 'default')]"# },# "publicIPAddress": {# "id": "[resourceId('Microsoft.Network/publicIPAddresses', 'exampleVMPublicIP')]"# }# }# }# ]# }# },# {# "type": "Microsoft.Network/publicIPAddresses",# "apiVersion": "2021-03-01",# "name": "exampleVMPublicIP",# "location": "[resourceGroup().location]",# "properties": {# "publicIPAllocationMethod": "Dynamic"# }# },# {# "type": "Microsoft.Network/virtualNetworks",# "apiVersion": "2021-03-01",# "name": "exampleVNet",# "location": "[resourceGroup().location]",# "properties": {# "addressSpace": {# "addressPrefixes": [# "10.0.0.0/16"# ]# },# "subnets": [# {# "name": "default",# "properties": {# "addressPrefix": "10.0.0.0/24"# }# }# ]# }# }# ]# }云服务监控和告警
AWS CloudWatch
# 创建CloudWatch告警aws cloudwatch put-metric-alarm --alarm-name cpu-alarm --alarm-description "CPU utilization alarm" --metric-name CPUUtilization --namespace AWS/EC2 --statistic Average --period 300 --threshold 70 --comparison-operator GreaterThanThreshold --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --evaluation-periods 1 --alarm-actions arn:aws:sns:us-east-1:123456789012:topic-name
# 查看CloudWatch告警aws cloudwatch describe-alarms
# 删除CloudWatch告警aws cloudwatch delete-alarms --alarm-names cpu-alarm
# 查看CloudWatch指标aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --dimensions Name=InstanceId,Value=i-1234567890abcdef0 --start-time 2026-02-05T00:00:00Z --end-time 2026-02-05T23:59:59Z --period 3600 --statistics AverageAzure Monitor
# 创建Azure Monitor告警az monitor metrics alert create --name cpu-alert --resource-group resource-group-name --scopes /subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachines/vm-name --condition "avg percentage CPU > 70" --window-size 5m --evaluation-frequency 1m --action-groups action-group-name
# 查看Azure Monitor告警az monitor metrics alert list --resource-group resource-group-name
# 删除Azure Monitor告警az monitor metrics alert delete --name cpu-alert --resource-group resource-group-name
# 查看Azure Monitor指标az monitor metrics list --resource /subscriptions/subscription-id/resourceGroups/resource-group-name/providers/Microsoft.Compute/virtualMachines/vm-name --metric cpuPercentage --start-time 2026-02-05T00:00:00Z --end-time 2026-02-05T23:59:59ZGoogle Cloud Monitoring
# 创建Google Cloud Monitoring告警gcloud alpha monitoring policies create --display-name="CPU Utilization Alarm" --condition="resource.type='gce_instance' AND metric.type='compute.googleapis.com/instance/cpu/utilization' AND aggregation.alignmentPeriod=60s AND aggregation.perSeriesAligner=ALIGN_MEAN AND aggregation.crossSeriesReducer=REDUCE_NONE AND aggregation.groupByFields=[] AND comparison.comparator=COMPARATOR_GREATER_THAN AND comparison.threshold.value=0.7 AND duration="60s" AND trigger.count=1" --combiner=OR --notification-channels=notification-channel-id
# 查看Google Cloud Monitoring告警gcloud alpha monitoring policies list
# 删除Google Cloud Monitoring告警gcloud alpha monitoring policies delete policy-id
# 查看Google Cloud Monitoring指标gcloud monitoring timeseries list --filter "metric.type=\"compute.googleapis.com/instance/cpu/utilization\" AND resource.type=\"gce_instance\" AND resource.label.instance_id=\"instance-id\"" --interval "startTime=2026-02-05T00:00:00Z,endTime=2026-02-05T23:59:59Z"Prometheus + Grafana
# 安装Prometheus和Grafana(使用Helm在Kubernetes中)helm repo add prometheus-community https://prometheus-community.github.io/helm-chartshelm repo updatehelm install prometheus prometheus-community/kube-prometheus-stack
# 访问Grafana# kubectl port-forward svc/prometheus-grafana 3000:80# 打开浏览器访问http://localhost:3000
# 配置Prometheus告警规则# 编辑prometheus-rules.yaml文件
# 配置Grafana仪表板# 导入预定义的仪表板,如Kubernetes集群仪表板云服务安全
身份和访问管理
# AWS IAMaws iam create-user --user-name user-nameaws iam create-access-key --user-name user-nameaws iam attach-user-policy --user-name user-name --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccessaws iam delete-user --user-name user-name
# Azure ADaz ad user create --display-name "User Name" --user-principal-name user@example.com --password "Password12345!"az role assignment create --assignee user@example.com --role "Contributor" --scope /subscriptions/subscription-id/resourceGroups/resource-group-nameaz ad user delete --id user@example.com
# GCP IAMgcloud iam service-accounts create service-account-name --display-name "Service Account"gcloud iam service-accounts keys create key.json --iam-account service-account-name@project-id.iam.gserviceaccount.comgcloud projects add-iam-policy-binding project-id --member "serviceAccount:service-account-name@project-id.iam.gserviceaccount.com" --role "roles/editor"gcloud iam service-accounts delete service-account-name@project-id.iam.gserviceaccount.com
# Kubernetes RBACkubectl create rolebinding user-edit --clusterrole=edit --user=user --namespace=defaultkubectl delete rolebinding user-edit --namespace=default加密和密钥管理
# AWS KMSaws kms create-keyaws kms create-alias --target-key-id key-id --alias-name alias/alias-nameaws kms encrypt --key-id alias/alias-name --plaintext fileb://plaintext.txt --output text --query CiphertextBlob | base64 --decode > ciphertext.binaws kms decrypt --ciphertext-blob fileb://ciphertext.bin --output text --query Plaintext | base64 --decode > decrypted.txt
# Azure Key Vaultaz keyvault create --name keyvault-name --resource-group resource-group-name --location eastus --sku standardaz keyvault secret set --vault-name keyvault-name --name secret-name --value "secret-value"az keyvault secret show --vault-name keyvault-name --name secret-name --query valueaz keyvault delete --name keyvault-name --resource-group resource-group-name --yes
# GCP KMSgcloud kms keyrings create keyring-name --location globalgcloud kms keys create key-name --keyring keyring-name --location global --purpose encryptiongcloud kms encrypt --key key-name --keyring keyring-name --location global --plaintext-file plaintext.txt --ciphertext-file ciphertext.bingcloud kms decrypt --key key-name --keyring keyring-name --location global --ciphertext-file ciphertext.bin --plaintext-file decrypted.txt
# Kubernetes Secretskubectl create secret generic secret-name --from-literal=username=admin --from-literal=password=secretkubectl get secret secret-name -o jsonpath='{.data.password}' | base64 --decodekubectl delete secret secret-name安全审计和合规性
# AWS CloudTrailaws cloudtrail create-trail --name trail-name --s3-bucket-name bucket-nameaws cloudtrail start-logging --name trail-nameaws cloudtrail describe-trails
# AWS Configaws configservice put-config-rule --config-rule file://config-rule.jsonaws configservice describe-config-rules
# Azure Policyaz policy definition create --name policy-name --display-name "Policy Name" --description "Policy Description" --rules policy-rules.json --mode indexedaz policy assignment create --name policy-assignment-name --policy policy-name --scope /subscriptions/subscription-id/resourceGroups/resource-group-name
# GCP Cloud Audit Logsgcloud logging sinks create sink-name storage.googleapis.com/bucket-name --log-filter "resource.type=gce_instance"
# GCP Security Command Centergcloud scc assets list --organization=organization-id云服务成本管理
成本监控和分析
# AWS Cost Exploreraws ce get-cost-and-usage --time-period Start=2026-01-01,End=2026-01-31 --granularity=DAILY --metrics=BlendedCost
# AWS Budgetsaws budgets create-budget --account-id 123456789012 --budget file://budget.json --notifications-with-subscribers file://notifications.json
# Azure Cost Managementaz consumption budget create --name budget-name --resource-group resource-group-name --amount 100 --time-grain monthly --start-date 2026-02-01 --end-date 2026-02-29 --category cost
# GCP Cost Managementgcloud beta billing budgets create --billing-account billing-account-id --display-name budget-name --amount 100 --currency USD --time-unit MONTH成本优化
# 预留实例(AWS)aws ec2 describe-reserved-instances-offerings --instance-type t2.micro --availability-zone us-east-1a --product-description "Linux/UNIX"
# spot实例(AWS)aws ec2 request-spot-instances --spot-price "0.005" --instance-count 1 --type one-time --launch-specification file://launch-specification.json
# 虚拟机规模集(Azure)az vmss create --name vmss-name --resource-group resource-group-name --image UbuntuLTS --admin-username azureuser --generate-ssh-keys --instance-count 3 --disable-overprovision --upgrade-policy-mode automatic
# 自动扩缩组(AWS)aws autoscaling create-auto-scaling-group --auto-scaling-group-name asg-name --launch-configuration-name lc-name --min-size 1 --max-size 3 --desired-capacity 1 --availability-zones us-east-1a us-east-1b
# 自动扩缩(Kubernetes)kubectl autoscale deployment deployment-name --min=1 --max=3 --cpu-percent=70云服务迁移
评估和规划
# AWS Application Discovery Serviceaws discovery create-application --name application-nameaws discovery describe-applications
# Azure Migrateaz migration project create --name project-name --resource-group resource-group-name --location eastusaz migration assessment create --project-name project-name --resource-group resource-group-name --assessment-name assessment-name --servers server-count --os-type linux --target-location eastus --target-subscription subscription-id
# GCP Migration Centergcloud beta migration-center imports create --display-name import-name --data-source aws --input-file file://assets.json执行迁移
# AWS Server Migration Serviceaws sms create-replication-job --server-id server-id --seed-replication-time 2026-02-05T00:00:00Z --frequency 6 --run-onceaws sms start-on-demand-replication-run --replication-job-id replication-job-id
# Azure Site Recoveryaz recovery-services vault create --name vault-name --resource-group resource-group-name --location eastusaz recovery-services protection-container mappings create --vault-name vault-name --resource-group resource-group-name --policy-name policy-name --source-container-id source-container-id --target-container-id target-container-id
# GCP Transfer Servicegcloud transfer jobs create --description "Transfer Job" --source aws-s3 --source-path s3://bucket-name/ --sink gcs --sink-path gs://bucket-name/云服务管理最佳实践
设计和架构
- 高可用性:设计多区域、多可用区的架构,确保服务的高可用性。
- 可扩展性:设计弹性架构,支持自动扩缩,应对流量变化。
- 安全性:实施多层次的安全措施,包括网络安全、身份认证、加密等。
- 可观测性:部署监控、日志和告警系统,确保系统的可观测性。
- 成本优化:选择合适的云服务和计费模式,优化成本。
部署和管理
- 基础设施即代码:使用Terraform、CloudFormation等工具实现基础设施即代码。
- 持续集成和持续部署:使用CI/CD工具实现自动化部署。
- 版本控制:使用Git等版本控制系统管理配置和代码。
- 自动化测试:实施自动化测试,确保部署的质量。
- 文档化:文档化系统架构、部署流程和操作手册。
监控和优化
- 实时监控:实时监控系统状态和性能指标。
- 告警管理:配置合理的告警规则,及时响应异常。
- 性能优化:定期分析系统性能,优化资源使用。
- 成本分析:定期分析云服务成本,优化成本结构。
- 安全审计:定期进行安全审计,发现和修复安全问题。
常见问题及解决方案
云服务访问失败
症状:无法访问云服务,显示连接错误。
解决方案:
- 检查网络连接
- 检查安全组和防火墙规则
- 检查云服务状态
- 检查认证和授权配置
云服务成本超支
症状:云服务成本超出预算。
解决方案:
- 分析成本报告,找出成本来源
- 优化资源使用,如关闭未使用的资源
- 使用预留实例或spot实例降低成本
- 配置成本告警,及时发现成本异常
云服务性能下降
症状:云服务性能下降,响应时间变长。
解决方案:
- 监控系统性能,找出性能瓶颈
- 优化资源配置,如增加CPU、内存等
- 优化应用程序代码
- 使用CDN、缓存等技术提高性能
云服务安全事件
症状:发生云服务安全事件,如未授权访问。
解决方案:
- 立即响应安全事件,如禁用 compromised 账号
- 调查安全事件原因
- 修复安全漏洞
- 更新安全策略和流程
总结
本文介绍了Linux系统中常用的云服务管理命令和技巧,包括云服务提供商、云服务管理工具、云资源管理、云服务部署、云服务监控和告警、云服务安全、云服务成本管理和云服务迁移等方面的内容。通过掌握这些命令和技巧,用户可以更高效地管理和使用云服务,提高云服务的可靠性、可用性和安全性。
云服务正在改变着我们部署和管理应用程序的方式,它提供了弹性、可扩展、高可用的基础设施,帮助我们快速构建和部署应用程序。随着云服务技术的不断发展,我们需要不断学习和更新知识,以适应新的挑战和机遇。
练习
- 安装和配置AWS CLI,管理AWS资源。
- 安装和配置Azure CLI,管理Azure资源。
- 安装和配置Google Cloud CLI,管理GCP资源。
- 安装和配置OpenStack CLI,管理OpenStack资源。
- 安装和配置kubectl,管理Kubernetes集群。
- 使用Terraform部署云资源。
- 配置云服务监控和告警。
- 实施云服务安全措施。
- 优化云服务成本。
- 迁移应用程序到云服务。
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!