云服务器如何配置容器化部署?

常见问题

云服务器如何配置容器化部署?

2025-04-11 05:12


云服务器容器化部署

                                            

云服务器容器化部署终极指南:从零到生产环境

在数字化转型浪潮中,容器化技术已成为现代应用部署的黄金标准。本文将手把手教您如何在云服务器上配置完整的容器化部署环境,涵盖Docker安装、编排工具选择、CI/CD流水线搭建等核心内容。

一、云服务器基础准备

选择适合的云服务器是成功的第一步:

  • 推荐配置:至少2核CPU/4GB内存(生产环境建议4核8GB起)
  • 操作系统:Ubuntu 20.04/22.04 LTS或CentOS 7+/AlmaLinux
  • 网络配置:确保开放以下端口:22(SSH)、80/443(Web)、2376(Docker)、6443(K8s)
# 安全加固建议
sudo apt update && sudo apt upgrade -y
sudo ufw allow 22/tcp
sudo ufw enable

二、Docker引擎安装与优化

以Ubuntu为例的安装步骤:

  1. 卸载旧版本:sudo apt remove docker docker-engine docker.io containerd runc
  2. 设置仓库:sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  3. 添加官方GPG密钥:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. 稳定版仓库:sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. 安装Docker CE:sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io

关键配置优化:

# 修改daemon.json
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "storage-driver": "overlay2",
  "registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

# 重启生效
sudo systemctl restart docker

三、编排工具选型与部署

主流编排方案对比

工具 适用场景 学习曲线 社区生态
Docker Compose 单机开发测试 简单 完善
Kubernetes 生产集群 陡峭 极丰富
Swarm 小型生产环境 中等 逐渐萎缩

Kubernetes快速部署(使用kubeadm)

# 所有节点执行
sudo apt update && sudo apt install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update && sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

# 主节点初始化
sudo kubeadm init --pod-network-cidr=10.244.0.0/16

# 工作节点加入
kubeadm join :6443 --token  --discovery-token-ca-cert-hash sha256:

四、持续部署流水线搭建

典型GitOps工作流配置:

CI/CD工作流程图
  1. 代码提交触发GitHub Actions
  2. 自动构建Docker镜像并推送到ACR
  3. ArgoCD检测镜像变更自动部署
  4. Prometheus监控+Alertmanager告警

GitHub Actions示例

name: Build and Push
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Login to ACR
      uses: azure/docker-login@v1
      with:
        login-server: myregistry.azurecr.io
        username: ${{ secrets.REGISTRY_USERNAME }}
        password: ${{ secrets.REGISTRY_PASSWORD }}
    - name: Build and push
      run: |
        docker build -t myregistry.azurecr.io/myapp:${{ github.sha }} .
        docker push myregistry.azurecr.io/myapp:${{ github.sha }}

五、安全最佳实践

  • 镜像扫描:集成Trivy或Clair到CI流程
  • 网络策略:使用Calico实现Pod间微隔离
  • 密钥管理:Vault或云厂商KMS服务
  • 审计日志:启用K8s审计功能并对接SIEM

基础安全检测命令

# 检查容器运行状态
docker ps --no-trunc

# 检查异常进程
docker top 

# 扫描镜像漏洞
trivy image myapp:latest

# 检查K8s配置
kube-bench run

成功实施的关键要素

根据我们为50+企业实施的经验,容器化部署要特别注意:

  1. 建立完整的监控体系(Prometheus+Granfa+Alertmanager黄金组合)
  2. 设计合理的资源配额(避免Noisy Neighbor问题)
  3. 制定完善的回滚机制(蓝绿部署优于直接覆盖)
  4. 定期进行灾备演练(模拟节点故障场景)

通过本文的指导,您应该已经掌握了云服务器容器化部署的核心要点。实际部署时,建议先从测试环境开始,逐步验证各组件可靠性后再推向生产环境。


标签:
  • 云服务器
  • 容器化部署
  • Docker
  • Kubernetes
  • CI/CD
  • 莱卡云