学习报告:冬季实战营第四期

简介: 在《冬季实战营第四期:零基础容器技术实战》的学习报告

冬季实战营第四期:零基础容器技术实战

阿里云容器服务Kubernetes版快速入门

部署并公开应用

本步骤指导您如何在ACK集群中快速部署一个无状态应用(Deployment)

即魔方游戏,并将该应用向公网公开

关于创建Deployment的详细参数描述,请参见创建无状态工作负载Deployment

  • 双击打开虚拟桌面的Firefox ESR浏览器,在RAM用户登录框中点击“下一步”,复制云产品资源列表中子用户密码,粘按CTRL+V把密码粘贴到密码输区,登陆子账户(后续在远程桌面里的粘贴操作均使用CTRL + V快捷键)

    复制容器服务管理控制台地址,在Firefox浏览器打开新页签,粘贴并访问容器服务管理控制台。

    https://cs.console.aliyun.com/
    
  • 集群列表页面中,单击目标集群名称

    结果

  • 在集群管理页左侧导航栏中,选择工作负载 > 无状态

    结果

  • 无状态页面中,单击使用镜像创建

    结果

  • 应用基本信息页签,设置应用名称,例如ack-cube,单击下一步

    结果

  • 容器配置页签,依次设置 镜像名称、镜像Tag、资源限制、所需资源、端口

    单击下一步

    结果

    参数说明:

    • 镜像名称:输入registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube
    • 镜像Tag:单击选择镜像Tag选择镜像的版本。若不指定,默认为最新版。示例:1.0
    • 资源限制:设置CPU为1 Core,内存为1024 MiB
    • 所需资源:设置CPU为0.25 Core,内存为512 MiB
    • 端口:设置容器的端口,输入名称ack-cube,容器端口80
  • 高级配置页签,单击服务(Service)右侧的创建

    结果

  • 在创建服务对话框中,设置服务的相关参数,单击创建,以通过该服务公开应用
参数说明:

- 名称:输入服务的名称。示例:ack-cube-svc
- 类型:选择负载均衡>公网访问>新建SLB
- 服务端口:设置服务端口为80
- 容器端口:设置服务端口为80

![结果](https://ucc.alicdn.com/pic/developer-ecology/7b433e3e7a17448180d6f55b3b1e2806.png)
  • 在高级配置页签,单击页面右下角的创建

    结果

    返回如下页面,表示应用创建成功,单击查看应用详情。

    结果

  • 在应用详情页面,您可以查看应用的容器组、访问方式、事件、容器伸缩、历史版本、日志、触发器等信息

    结果

测试应用

本步骤指导您如何通过服务(Service)来访问新部署的容器化应用

  1. 切换回容器服务管理控制台页签。在左侧导航栏中,选择网络 > 服务
  2. 在服务列表页面,找到新创建的服务(即ack-cube-svc),记录外部端点的IP地址

结果

  1. 打开您本地的浏览器,在地址栏中输入并访问外部端点列的IP地址,您即可体验魔方游戏

结果

Docker镜像管理快速入门

搭建Docker服务

Docker 是一个开源的容器引擎,用于创建、管理和编排容器,可以轻松为任何应用创建一个轻量级、可移植、自给自足的容器。本步骤将在ECS上部署一个Docker服务,并配置DockerHub的镜像加速器

  1. 点击右侧Web Terminal ,切换至Web Terminal,输入以下命令,安装Docker的依赖库

    yum install -y yum-utils device-mapper-persistent-data lvm2

  2. 添加Docker CE的软件源信息

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  3. 安装Docker CE

    yum makecache fast &&
    yum -y install docker-ce

  4. 启动Docker服务

    systemctl start docker

  5. 配置DockerHub镜像加速器

    tee /etc/docker/daemon.json <<-'EOF'
    {

    "registry-mirrors": ["https://registry.docker-cn.com"]

    }
    EOF

  6. 重启Docker服务

    systemctl restart docker

准备应用代码和Dockerfile

本步骤操作将在工作空间下创建一个基于Golang的HelloWorld代码文件和一个用来构建运行Hello代码所需环境镜像的Dockerfile文件

  1. 创建工作空间

    mkdir -p /tmp/demo && cd /tmp/demo
    
  2. 在工作空间下创建HelloWorld代码文件,用来在容器环境中监听HTTP服务,输出HelloWorld字符串

    cat > /tmp/demo/main.go << EOF
    package main
    
    import (
        "fmt"
        "net/http"
    )
    
    func main() {
        http.HandleFunc(
            "/", 
            func(w http.ResponseWriter, r *http.Request) {
                fmt.Fprintf(w, "Hello! World\n")
            }
        )
    
        fmt.Println("start to serve...")
        http.ListenAndServe(":80", nil)
    }
    EOF
    
  3. 在工作空间下创建Dockerfile文件

    cat > /tmp/demo/Dockerfile << EOF
    FROM golang:1.12-alpine
    
    # change current working dir
    WORKDIR /go/src/app
    
    # copy main.go into /go/src/app
    COPY . .
    
    # go build and install the app
    RUN go install -v ./...
    
    # run the app by default
    CMD ["app"]
    EOF

本地构建镜像并运行镜像

本步骤将指导您使用Docker基本命令构建和运行镜像

  1. 使用docker build命令构建镜像

    docker build . -t demo:v1
    

    命令运行结果如下所示:

    结果

说明:

* 参数 `.` : 表示指定当前路径作为构建上下文,即Dockerfile所在的本地路径
* 参数 `-t` : demo:v1指定镜像名称和标签

  1. 使用docker run命令运行镜像

    docker run -d -p 8000:80 demo:v1
    

    命令运行结果如下所示:

    结果

    说明:

    • 参数 -d : 设置容器运行模式为后台运行
    • 参数 -p : 8000:80将容器内部使用的网络端口映射到主机上,其中8000为主机端口,80为容器内部使用端口
  2. 使用curl工具访问容器中的HelloWorld服务

    curl localhost:8000
    

    命令运行结果如下所示:

    结果

  3. 使用docker rm命令删除容器

    docker rm -f $(docker ps -a | grep "demo:v1" | awk '{print $1}')
    

    命令运行结果如下所示:

    结果

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
SQL 分布式计算 运维
冬季实战营第五期学习报告
冬季实战营第五期学习报告
|
SQL Web App开发 弹性计算
学习报告:冬季实战营第三期
在《冬季实战营第三期:MySQL数据库进阶实战》的学习报告
265 0
学习报告:冬季实战营第三期
|
SQL 弹性计算 运维
冬季实战营第三期学习报告
通过本期学期,掌握了MySQL及RDS MySQL基本操作
156 2
|
SQL 弹性计算 分布式计算
学习报告:冬季实战营第五期
在《冬季实战营第五期:轻松入门学习大数据》的学习报告
164 0
学习报告:冬季实战营第五期
|
Linux 程序员 Shell
冬季实战营第二期学习报告
针对第二期的Linux操作系统实战入门,通过动手实操的体验写出感受。时间真快,从1月24日到1月28日,参与了五天不同内容的动手实战,从中发现虽然在大学里学过这门课,但是好像没有这期收获很多没有学过的知识点,每一天都在涨知识,不得不感叹,学无止境,感觉真妙,可见大学里学的东西比较浅,还需要自学其它很多新知识点,感谢第二期Linux操作系统实战入门的体验,再接再厉~ 让我们一起向未来。
158 0
冬季实战营第二期学习报告
|
弹性计算 缓存 安全
学习报告:冬季实战营第二期
在冬季实战营第二期:Linux操作系统实战入门的学习报告
223 0
学习报告:冬季实战营第二期
|
Kubernetes 监控 Docker
冬季实战营第四期学习报告
通过本期学期,掌握了容器的基本技术
97 0
|
Linux Windows
冬季实战营第二期-学习报告
冬季实战营第二期-学习报告
|
监控 Linux Shell
冬季实战营第二期 学习报告心得
针对冬季实战营第二期学习所得的阐述。
219 0
|
22小时前
|
存储 运维 安全
云上金融量化策略回测方案与最佳实践
2024年11月29日,阿里云在上海举办金融量化策略回测Workshop,汇聚多位行业专家,围绕量化投资的最佳实践、数据隐私安全、量化策略回测方案等议题进行深入探讨。活动特别设计了动手实践环节,帮助参会者亲身体验阿里云产品功能,涵盖EHPC量化回测和Argo Workflows量化回测两大主题,旨在提升量化投研效率与安全性。
云上金融量化策略回测方案与最佳实践