本文由【云老大】 TG@yunlaoda360 撰写
一、准备工作
- 创建项目:在Google Cloud Console中创建一个项目,为部署代码做好准备。
- 启用服务:根据需要启用相应的服务,如Compute Engine、App Engine、Kubernetes Engine等。
- 设置认证:创建服务账号并下载JSON密钥文件,用于后续的认证和授权。
- 安装工具:安装Google Cloud SDK,以便在本地环境中使用
gcloud命令行工具。
二、部署到Compute Engine
-
创建虚拟机实例:
- 在Google Cloud Console中,选择 “计算” > “计算引擎” > “实例” ,点击 “创建实例” 。
- 配置实例的名称、区域、机器类型、启动磁盘等参数。
- 点击 “创建” 完成实例的创建。
-
连接到实例:
- 在实例列表中,点击实例名称,选择 “连接” > “SSH” ,通过SSH连接到实例。
-
部署代码:
-
使用
git clone命令将代码从版本控制系统克隆到实例中:bash
git clone https://github.com/your-username/your-repository.git -
或者使用
rsync命令将本地代码同步到实例中:bash
rsync -avz -e "ssh -i ~/.ssh/google_compute_engine" /local/path/to/code/ username@instance-ip:/remote/path/ -
安装代码运行所需的依赖库和环境,例如使用
pip安装Python库:bash
pip install -r requirements.txt
-
-
运行代码:启动应用程序,例如运行Python脚本:
bash
python app.py -
设置自动启动(可选) :为了确保实例重启后代码能自动运行,可以设置开机启动项。以下是在Ubuntu系统上设置的方法:
-
创建一个服务文件
/etc/systemd/system/myapp.service:ini
[Unit] Description=My Application After=network.target [Service] ExecStart=/usr/bin/python3 /path/to/app.py Restart=always User=root [Install] WantedBy=multi-user.target -
重新加载systemd配置并启动服务:
bash
systemctl daemon-reload systemctl start myapp systemctl enable myapp
-
三、部署到App Engine
-
创建App Engine应用:
- 在Google Cloud Console中,选择 “应用引擎” > “概览” ,点击 “创建应用” ,选择应用的位置。
-
准备代码:
-
确保代码符合App Engine的目录结构和命名规范。例如,Python应用的目录结构如下:
myapp/ app.yaml main.py requirements.txt
-
-
部署应用:
-
在本地终端中,导航到应用目录,运行以下命令部署应用:
bash
gcloud app deploy app.yaml
-
-
访问应用:部署完成后,使用以下命令获取应用的URL并访问应用:
bash
gcloud app browse
四、部署到Kubernetes Engine
-
创建集群:
- 在Google Cloud Console中,选择 “容器引擎” > “集群” ,点击 “创建集群” 。
- 配置集群的名称、区域、节点配置等参数。
- 点击 “创建” 完成集群的创建。
-
部署应用:
-
创建一个Docker容器镜像并将其推送到Container Registry:
bash
docker build -t gcr.io/PROJECT_ID/IMAGE_NAME . docker push gcr.io/PROJECT_ID/IMAGE_NAME -
创建一个Kubernetes部署文件
deployment.yaml:yaml
apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment spec: replicas: 3 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp-container image: gcr.io/PROJECT_ID/IMAGE_NAME ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: myapp-service spec: type: LoadBalancer selector: app: myapp ports: - protocol: TCP port: 80 targetPort: 80 -
使用
kubectl命令部署应用:bash
kubectl apply -f deployment.yaml
-
五、部署到Cloud Run
-
创建服务:
- 在Google Cloud Console中,选择 “无服务器” > “Cloud Run” > “服务” ,点击 “创建服务” 。
- 配置服务的名称、区域、源代码等参数。
- 如果选择从容器镜像部署,可以使用现有的Docker镜像或新建一个镜像。
- 点击 “创建并部署” 完成服务的创建和部署。
-
访问服务:部署完成后,使用服务的URL访问应用。