栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

cmu云计算 docker与编排

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

cmu云计算 docker与编排

gcp链接实例

gcloud compute --project gcp-docker-kubernetes-xxxxxx ssh --zone us-east1-b clouduser@student-vm

如果想用scp交互,可以从以下地方找到密钥对

Linux and macOS Public key: $HOME/.ssh/google_compute_engine.pub
Private key: $HOME/.ssh/google_compute_engine Windows: Public key:
C:Users[USERNAME].sshgoogle_compute_engine.pub Private key:
C:Users[USERNAME].sshgoogle_compute_engine

task1

在项目目录下执行该命令,生成jar包

mvn clean package

在main下创建docker文件夹 并写好dockerfile

因为在pom.xml中已经添加了docker相关内容。所以可以直接运行 创建容器

mvn clean install

使用 docker images查看images

使用下面命令启动容器 主机端口8000->8080

docker run -d -p 8000:8080 task1/spring-profile-embedded:0.1.0

可以通过 对本地端口进行测试

curl http://localhost:8000/profile?username=majd

在gcp上,可能需要

  gcloud auth application-default login
  gcloud config set project gcp-docker-kubernetes-xxxxxx
  gcloud config set compute/region us-east1
  gcloud config set compute/zone us-east1-b

出现的问题:
docker立马停止 无法用docker ps查看到
使用docker ps -a 发现已经停止

问题的原因:
dockerfile写错 使用jar包语法错误
一、如果java定义了jar包的main class入口,则使用如下命令
$ java -jar myjar.jar

task2 kubernets

概述: 整个项目简单来说就是用docker创建一个新的镜像,然后推到gcr上,之后用gcr自带的kubernetes引擎在本地使用kubernetes yaml文件对集群进行控制。

Google Kubernetes Engine

创建好docker images之后 推送到google gcp上,然后google自带的Kubernetes Engine 可以实现自动的kubernetes

构建容器和上传gcp部分

#下载源码
git clone https://github.com/GoogleCloudPlatform/kubernetes-engine-samples
cd kubernetes-engine-samples/hello-app
# docker构建
export PROJECT_ID=
docker build -t us.gcr.io/${PROJECT_ID}/hello-app:v1 .

#本地运行测试
docker run -d -p 8080:8080 us.gcr.io/${PROJECT_ID}/hello-app:v1
curl http://localhost:8080
docker ps
docker stop CONTAINER_ID 停止

#将容器上传到GCP
gcloud auth configure-docker
docker push us.gcr.io/${PROJECT_ID}/hello-app:v1

构建GKE集群部分
以下命令均在cloud shell中:

# Set your project ID and Compute Engine zone options for the gcloud tool:
gcloud config set project ${PROJECT_ID}
gcloud config set compute/zone us-east1-d

CLUSTER_NAME=gke-demo-cluster
gcloud container clusters create ${CLUSTER_NAME} --num-nodes=3

#部署
kubectl create deployment hello-web --image=us.gcr.io/${PROJECT_ID}/hello-app:v1
#查看是否正常工作
kubectl get deployments
#查看创建的pods
kubectl get pods
# 默认情况下,您在 GKE 上运行的容器无法从 Internet 访问。您必须明确地将您的应用程序暴露给来自 Internet 的流量 创建了一个负载均衡器
kubectl expose deployment hello-web --type=LoadBalancer --port 80 --target-port 8080

kubectl get service
# 通过外网访问 http://

扩展应用程序部分

# 将两个新的副本添加到集群内
kubectl scale deployment hello-web --replicas=3
# 查看新添加副本
kubectl get deployments
kubectl get pods
task3

通过helm控制kubernetes
更新图表

helm repo add stable https://charts.helm.sh/stable

helm repo update

使用mvn生成docker镜像

mvn clean install

用docker贴标签

docker tag task3/spring-profile:0.1.0  us.gcr.io/gcp-docker-kubernetes-327022/spring-profile:0.1.0

并推送到gcr

docker push us.gcr.io/gcp-docker-kubernetes-327022/spring-profile:0.1.0

开启mysql服务

export MYSQL_ROOT_PWD=""
export MYSQL_PWD=""
export MYSQL_USERNAME=""

helm install 
    mysql-instance 
    --set mysqlRootPassword=$MYSQL_ROOT_PWD,mysqlUser=$MYSQL_USERNAME,mysqlPassword=$MYSQL_PWD,mysqlDatabase=test 
    stable/mysql
task4


完成构架
主要写helm文件 kubernetes文件 以及运维

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/276331.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号