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

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
简介: 共有三个场景动手实战-基础学习之阿里云容器服务Kubernetes版快速入门动手实战-基础学习之Docker镜像管理快速入门动手实战-进阶实战之Chaos带你快速上手混沌工程其中第三个场景可能是版本升级的原因,有部分操作和体验手册不同,特别是在创建故障演练,找不到演练应用,花费了比较长的时间,解决方法已经写在了故障演练一节里。

1 动手实战-基础学习之阿里云容器服务Kubernetes版快速入门

1.1 申请资源

屏幕截图(664).png1.2 再集群上创建应用

登陆后转到容器控制台

屏幕截图(665).png

单击集群名称,转到容器管理界面,单击左边导航栏的工作负载后再单击无状态

屏幕截图(666).png

单击使用镜像创建,再应用基本信息下面输入应用名称,如果浏览器放大倍数过大,上面的导航栏可能会纵向排列,这样会看不到输入应用信息的文本框,缩小以下浏览器的放大倍数使显示正常后输入应用名称(ack-cube),点击下一步,进入容器配置页面屏幕截图(667).png

复制粘贴镜像地址,填入资源限制,所需资源保持默认。向下滑动屏幕

屏幕截图(668).png

填入容器名称及端口号,点击下一步进入高级配置

屏幕截图(669).png

点击服务右边的创建连接

屏幕截图(670).png

选择负载均衡,公网访问,新建SLB,服务端口和容器端口选择80,进入下一步,应用创建成功后显示下面界面。

屏幕截图(671).png

1.3 访问应用

屏幕截图(672).png

转到应用管理界面,点击详情

屏幕截图(673).png

在本地浏览器上键入svc的外网地址,访问应用

屏幕截图(674).png

1.4 容器和应用的监控

点击左侧导航看运维管理->prometheus监控

屏幕截图(675).png

点击右边,

屏幕截图(676).png

点击无状态应用监控,命名空间选择default,deployment选择ack-cube,pod选择all

屏幕截图(677).png

点击右边V,屏幕截图(678).png

点击pod监控

屏幕截图(679).png

也可以监控单独的pod

屏幕截图(680).png

屏幕截图(681).png

下面是这个应用的基本信息

屏幕截图(682).png

2 动手实战-基础学习之Docker镜像管理快速入门

2.1 docker 安装

安装docker依赖库

[root@iZuf643m46s6kdj5ynchtbZ ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

Installed:
      device-mapper-persistent-data.x86_64 0:0.8.5-3.el7_9.2              lvm2.x86_64 7:2.02.187-6.el7_9.5              
      yum-utils.noarch 0:1.1.31-54.el7_8                                  
    Dependency Installed:
      device-mapper-event.x86_64 7:1.02.170-6.el7_9.5        device-mapper-event-libs.x86_64 7:1.02.170-6.el7_9.5        
      libaio.x86_64 0:0.3.109-13.el7                         libxml2-python.x86_64 0:2.9.1-6.el7_9.6                    
      lvm2-libs.x86_64 7:2.02.187-6.el7_9.5                  python-chardet.noarch 0:2.2.1-3.el7                        
      python-kitchen.noarch 0:1.1.1-5.el7                    
    Dependency Updated:
      device-mapper.x86_64 7:1.02.170-6.el7_9.5              device-mapper-libs.x86_64 7:1.02.170-6.el7_9.5              
      libxml2.x86_64 0:2.9.1-6.el7_9.6                      
    Complete!

添加docker-ce yum仓库

[root@iZuf643m46s6kdj5ynchtbZ ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo    Loaded plugins: fastestmirror
    adding repo from: http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    grabbing file http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
    repo saved to /etc/yum.repos.d/docker-ce.repo

安装docker-ce

[root@iZuf643m46s6kdj5ynchtbZ ~]# yum makecache fast &&    > yum -y install docker-ce
    Installed:
      docker-ce.x86_64 3:20.10.12-3.el7                                                                                  
    Dependency Installed:
      audit-libs-python.x86_64 0:2.8.5-4.el7                    checkpolicy.x86_64 0:2.5-8.el7                          
      container-selinux.noarch 2:2.119.2-1.911c772.el7_8        containerd.io.x86_64 0:1.4.12-3.1.el7                    
      docker-ce-cli.x86_64 1:20.10.12-3.el7                     docker-ce-rootless-extras.x86_64 0:20.10.12-3.el7        
      docker-scan-plugin.x86_64 0:0.12.0-3.el7                  fuse-overlayfs.x86_64 0:0.7.2-6.el7_8                    
      fuse3-libs.x86_64 0:3.6.1-4.el7                           libcgroup.x86_64 0:0.41-21.el7                          
      libsemanage-python.x86_64 0:2.5-14.el7                    policycoreutils-python.x86_64 0:2.5-34.el7              
      python-IPy.noarch 0:0.75-6.el7                            setools-libs.x86_64 0:3.3.8-4.el7                        
      slirp4netns.x86_64 0:0.4.3-4.el7_8                        
    Dependency Updated:
      policycoreutils.x86_64 0:2.5-34.el7                                                                                
    Complete!

2.2 启动和配置docker加速

启动docker

[root@iZuf643m46s6kdj5ynchtbZ ~]# systemctl start docker

配置DokerHub镜像加速器

[root@iZuf643m46s6kdj5ynchtbZ ~]# tee /etc/docker/daemon.json <<-'EOF'> {
>   "registry-mirrors": ["https://registry.docker-cn.com"]
> }
> EOF
    {
"registry-mirrors": ["https://registry.docker-cn.com"]
    }

重新启动docker

[root@iZuf643m46s6kdj5ynchtbZ ~]# systemctl restart docker

2.3 准备应用代码和Dockerfile

创建工作空间。

[root@iZuf643m46s6kdj5ynchtbZ ~]# mkdir -p /tmp/demo && cd /tmp/demo

在工作空间下创建HelloWorld代码文件,用来在容器环境中监听HTTP服务,输出HelloWorld字符串

[root@iZuf643m46s6kdj5ynchtbZ demo]# 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

创建dockfile

[root@iZuf643m46s6kdj5ynchtbZ demo]# 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

创建docke 映像

[root@iZuf643m46s6kdj5ynchtbZ demo]# docker build . -t demo:v1      Sending build context to Docker daemon  3.072kB
      Step 1/5 : FROM golang:1.12-alpine
1.12-alpine: Pulling from library/golang
      c9b1b535fdd9: Pull complete  
      cbb0d8da1b30: Pull complete  
      d909eff28200: Pull complete  
      665fbbf998e4: Pull complete  
      4985b1919860: Pull complete  
      Digest: sha256:3f8e3ad3e7c128d29ac3004ac8314967c5ddbfa5bfa7caa59b0de493fc01686a
      Status: Downloaded newer image for golang:1.12-alpine
---> 76bddfb5e55e
      Step 2/5 : WORKDIR /go/src/app
---> Running in 50856c0618b9
      Removing intermediate container 50856c0618b9
---> 45abb87642ee
      Step 3/5 : COPY . .
---> e57146ac1ce7
      Step 4/5 : RUN go install -v ./...
---> Running in c4efba75fe73
      app
      Removing intermediate container c4efba75fe73
---> fd90cbab2411
      Step 5/5 : CMD ["app"]
---> Running in 4d98b944706f
      Removing intermediate container 4d98b944706f
---> ecfa6e962322
      Successfully built ecfa6e962322
      Successfully tagged demo:v1

创建并运行容器

[root@iZuf643m46s6kdj5ynchtbZ demo]# docker run -d -p 8000:80 demo:v1      9bbb45be7be18dd631de673ac4ff7085da0f57701d018b2c3c911c022e853f6e

检查容器运行效果

[root@iZuf643m46s6kdj5ynchtbZ demo]# curl localhost:8000

     Hello! World

删除容器

[root@iZuf643m46s6kdj5ynchtbZ demo]# docker rm -f $(docker ps -a | grep "demo:v1" | awk '{print $1}')

     9bbb45be7be1

2.4 创建远程镜像仓库

屏幕截图(689).png

2.5 推送镜像

登陆远程仓库

[root@iZuf643m46s6kdj5ynchtbZ demo]# docker login --username=云深知何处lcx registry.cn-beijing.aliyuncs.comPassword: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

标记镜像

[root@iZuf6gbozru2ddvscdru6uZ ~]#docker tag 216d652fb4f7 registry.cn-beijing.aliyuncs.com/my_study_2022/demo:v1

推送镜像

[root@iZuf6gbozru2ddvscdru6uZ ~]# docker push registry.cn-beijing.aliyuncs.com/my_study_2022/demo:v1    The push refers to repository [registry.cn-beijing.aliyuncs.com/my_study_2022/demo]
    64ede27841c1: Pushed  
    6dc85406953e: Pushed  
    bae429f8d06e: Pushed  
    7306dca01e79: Pushed  
    3957f7032fc4: Pushed  
    12c4e92b2d48: Pushed  
    45182158f5da: Pushed  
    5216338b40a7: Pushed  
    v1: digest: sha256:4a2fc482d6f04d10948f7dcab3b41477f340a0eb8a5d9d783f080a3e724e1832 size: 1990


在远程仓库上查看

屏幕截图(688).png

删除本地镜像后重新拉取镜像

[root@iZuf6gbozru2ddvscdru6uZ ~]# docker pull registry.cn-beijing.aliyuncs.com/my_study_2022/demo:v1v1: Pulling from my_study_2022/demo
c9b1b535fdd9: Already exists  
cbb0d8da1b30: Already exists  
d909eff28200: Already exists  
665fbbf998e4: Already exists  
4985b1919860: Already exists  
60e753085483: Pull complete  
6f2aab6ca296: Pull complete  
1a5a87818da3: Pull complete  
Digest: sha256:4a2fc482d6f04d10948f7dcab3b41477f340a0eb8a5d9d783f080a3e724e1832
Status: Downloaded newer image for registry.cn-beijing.aliyuncs.com/my_study_2022/demo:v1
registry.cn-beijing.aliyuncs.com/my_study_2022/demo:v1
registry.cn-beijing.aliyuncs.com/my_study_2022/demo   v1            216d652fb4f7   33 minutes ago   354MB
golang                                                1.12-alpine   76bddfb5e55e   2 years ago      346MB

运行并检查检查容器

[root@iZuf6gbozru2ddvscdru6uZ ~]# docker run -d -p 8000:80 216d652fb4f7e73356c523b711e59b0e26f6c85ae02971d5897f5205886cbbed61dfa5340eab
[root@iZuf6gbozru2ddvscdru6uZ ~]# curl localhost:8000Hello! World

3 进阶实战之Chaos带你快速上手混沌工程

3.1 申请资源

屏幕截图(690).png

3.2 创建应用

查看集群

屏幕截图(691).png

单击集群名称进入详情集群详情页

屏幕截图(692).png

点击左侧导航栏的无状态

屏幕截图(693).png

点击使用YAML创建资源

屏幕截图(694).png

删除里面的模板,粘贴进去下面内容

apiVersion: apps/v1
kind: Deployment
metadata:  name: nacos-server
spec:  selector:    matchLabels:      app: nacos-server
  template:    metadata:      labels:        app: nacos-server
    spec:      containers:        - name: nacos-standalone
          image: registry.cn-beijing.aliyuncs.com/ahas_demo/nacos:1.0.0          ports:            - containerPort: 8848          env:            - name: PREFER_HOST_MODE
              value: "hostname"            - name: MODE
              value: "standalone"          resources:            limits:              cpu: 1              memory: 2048Mi
            requests:              cpu: 200m
              memory: 512Mi
---apiVersion: v1
kind: Service
metadata:  name: nacos-server
spec:  type: ClusterIP
  selector:    app: nacos-server
  ports:    - name: http
      port: 8848      targetPort: 8848---apiVersion: apps/v1
kind: Deployment
metadata:  name: cart-redis
spec:  selector:    matchLabels:      app: cart-redis
  replicas: 1  template:    metadata:      labels:        app: cart-redis
    spec:      containers:        - name: cart-redis
          image: redis:alpine
          imagePullPolicy: IfNotPresent
          ports:            - containerPort: 6379          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
---apiVersion: v1
kind: Service
metadata:  labels:    app: cart-redis
  name: cart-redis
spec:  ports:    - port: 6379      targetPort: 6379  selector:    app: cart-redis
---apiVersion: apps/v1
kind: Deployment
metadata:  name: cartservice
spec:  selector:    matchLabels:      app: cartservice
  template:    metadata:      labels:        app: cartservice
    spec:      containers:        - name: cartservice
          image: registry.cn-beijing.aliyuncs.com/ahas_demo/cartservice:1.0.0          imagePullPolicy: Always
          env:            - name: dubbo.registry.address
              value: "nacos://nacos-server:8848"            - name: spring.cloud.nacos.discovery.server-addr
              value: "nacos-server:8848"            - name: spring.cloud.nacos.config.server-addr
              value: "nacos-server:8848"          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
---apiVersion: apps/v1
kind: Deployment
metadata:  name: recommendationservice
spec:  selector:    matchLabels:      app: recommendationservice
  template:    metadata:      labels:        app: recommendationservice
        version: 1.0.0-SNAPSHOT
    spec:      containers:        - name: recommendationservice
          image: registry.cn-beijing.aliyuncs.com/ahas_demo/recomendationservice:1.0.0# imagePullPolicy: Always          env:            - name: dubbo.registry.address
              value: "nacos://nacos-server:8848"            - name: spring.cloud.nacos.discovery.server-addr
              value: "nacos-server:8848"            - name: spring.cloud.nacos.config.server-addr
              value: "nacos-server:8848"          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
---apiVersion: apps/v1
kind: Deployment
metadata:  name: product-mysql
spec:  selector:    matchLabels:      app: product-mysql
  replicas: 1  strategy:    type: Recreate
  template:    metadata:      labels:        app: product-mysql
    spec:      containers:        - args:            - --character-set-server=utf8mb4
            - --collation-server=utf8mb4_unicode_ci
          env:            - name: MYSQL_DATABASE
              value: product
            - name: MYSQL_ROOT_PASSWORD
              value: productservice
          image: mysql:5.6          name: product-mysql
          ports:            - containerPort: 3306          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
---apiVersion: v1
kind: Service
metadata:  labels:    app: product-mysql
  name: product-mysql
spec:  ports:    - port: 3306      targetPort: 3306  selector:    app: product-mysql
---apiVersion: apps/v1
kind: Deployment
metadata:  name: productservice
spec:  selector:    matchLabels:      app: productservice
  template:    metadata:      labels:        app: productservice
        version: 1.0.0-SNAPSHOT
    spec:      containers:        - name: productservice
          image: registry.cn-beijing.aliyuncs.com/ahas_demo/productservice:1.0.0          imagePullPolicy: Always
          env:            - name: dubbo.registry.address
              value: "nacos://nacos-server:8848"            - name: spring.cloud.nacos.discovery.server-addr
              value: "nacos-server:8848"            - name: spring.cloud.nacos.config.server-addr
              value: "nacos-server:8848"          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
---apiVersion: apps/v1
kind: Deployment
metadata:  name: checkout-mysql
spec:  selector:    matchLabels:      app: checkout-mysql
  replicas: 1  strategy:    type: Recreate
  template:    metadata:      labels:        app: checkout-mysql
    spec:      containers:        - args:            - --character-set-server=utf8mb4
            - --collation-server=utf8mb4_unicode_ci
          env:            - name: MYSQL_DATABASE
              value: checkout
            - name: MYSQL_ROOT_PASSWORD
              value: checkoutservice
          image: mysql:5.6          name: checkout-mysql
          ports:            - containerPort: 3306          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
---apiVersion: v1
kind: Service
metadata:  labels:    app: checkout-mysql
  name: checkout-mysql
spec:  ports:    - port: 3306      targetPort: 3306  selector:    app: checkout-mysql
---apiVersion: apps/v1
kind: Deployment
metadata:  name: checkoutservice
spec:  selector:    matchLabels:      app: checkoutservice
  template:    metadata:      labels:        app: checkoutservice
    spec:      containers:        - name: checkoutservice
          image: registry.cn-beijing.aliyuncs.com/ahas_demo/checkoutservice:health
          imagePullPolicy: Always
          ports:            - name: liveness-port
              containerPort: 8080              protocol: TCP
          env:            - name: dubbo.registry.address
              value: "nacos://nacos-server:8848"            - name: spring.cloud.nacos.discovery.server-addr
              value: "nacos-server:8848"            - name: spring.cloud.nacos.config.server-addr
              value: "nacos-server:8848"          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
          livenessProbe:            failureThreshold: 3            httpGet:              path: /health
              port: liveness-port
              scheme: HTTP
            initialDelaySeconds: 5            periodSeconds: 10            successThreshold: 1            timeoutSeconds: 1          startupProbe:            failureThreshold: 3            httpGet:              path: /health
              port: liveness-port
              scheme: HTTP
            initialDelaySeconds: 40            periodSeconds: 5            successThreshold: 1---apiVersion: apps/v1
kind: Deployment
metadata:  name: frontend
spec:  selector:    matchLabels:      app: frontend
  template:    metadata:      labels:        app: frontend
    spec:      containers:        - name: frontend
          image: registry.cn-beijing.aliyuncs.com/ahas_demo/frontend:async-test
          imagePullPolicy: Always
          ports:            - name: liveness-port
              containerPort: 8080              protocol: TCP
          env:            - name: dubbo.registry.address
              value: "nacos://nacos-server:8848"            - name: spring.cloud.nacos.discovery.server-addr
              value: "nacos-server:8848"            - name: spring.cloud.nacos.config.server-addr
              value: "nacos-server:8848"          resources:            limits:              cpu: 1              memory: 512Mi
            requests:              cpu: 200m
              memory: 128Mi
          livenessProbe:            failureThreshold: 3            httpGet:              path: /health
              port: liveness-port
              scheme: HTTP
            initialDelaySeconds: 5            periodSeconds: 10            successThreshold: 1            timeoutSeconds: 1          startupProbe:            failureThreshold: 3            httpGet:              path: /health
              port: liveness-port
              scheme: HTTP
            initialDelaySeconds: 60            periodSeconds: 5            successThreshold: 1---apiVersion: v1
kind: Service
metadata:  name: frontend
spec:  type: ClusterIP
  selector:    app: frontend
  ports:    - name: http
      port: 8080      targetPort: 8080---apiVersion: v1
kind: Service
metadata:  name: frontend-external
spec:  type: LoadBalancer
  selector:    app: frontend
  ports:    - name: http
      port: 8080      targetPort: 8080

粘贴完毕后,点击创建。

屏幕截图(698).png

点击frontend,进入其详情页

屏幕截图(699).png

点击访问方式

屏幕截图(700).png

点击frontend-external

屏幕截图(701).png

点击外部端点

屏幕截图(703).png

查看一个产品

屏幕截图(704).png

添加到购物车

屏幕截图(705).png

向下滑动屏幕

屏幕截图(706).png

确认订单

屏幕截图(707).png


3.3 部署高可用服务

回到集群列表

屏幕截图(708).png

可能是版本的原因,这里和体验手册不同,点击应用市场

屏幕截图(709).png

点击ack-ahas-pilot

屏幕截图(710).png

点击一键部署

屏幕截图(711).png

点击下一步

屏幕截图(712).png

点击确定

屏幕截图(713).png

3.4 应用高可用服务

架构感知

进入高可用服务控制台

屏幕截图(714).png

点击架构感知

屏幕截图(715).png

进入场景视图

屏幕截图(716).png

点击kubenetes监控视图下的查看视图

屏幕截图(717).png

点击确定

屏幕截图(718).png

故障演练

屏幕截图(733).png

成功创建了场景中的三个空白演练,演练效果也符合预期。这里也有版本的问题,导致在创建故障演练时下拉时找不到演练应用而无法选择应用,解决方法其实可以点击下图右边的找不到应用连接来找到

屏幕截图(723).png


点击上面找不到应用的连接后,发现最终的解决办法需要在应用的yaml文件中加入app-instance及app-group标签,重新部署应用,在应用详情页可以找到更多操作-查看YAML

,在这里编辑以下,加入标签,重新部署应用,YAML要更改的部分可以参考下图

屏幕截图(721).png

label标签下

 ahas.aliyun/app-instance:frontend

ahas.aliyun/app-group:my_group

为新加部分,编辑完后点更新,重新部署这个应用。然后到创建故障演练界面里刷新即可找到应用。

自动演练场景,到这里就进行不下去了,一直找不到依赖关系。

屏幕截图(734).png

相关文章
|
3月前
|
消息中间件 存储 监控
云消息队列RabbitMQ版测评报告
在数字化快速发展的背景下,分布式系统的稳定性和可靠性至关重要。阿里云推出的云消息队列RabbitMQ解决方案,通过架构优化和一键部署,有效提升了系统的吞吐量和响应速度,降低了部署和维护成本。本文详细介绍了该方案的部署流程、方案验证,并提出了改进建议。
|
2月前
|
SQL 监控 关系型数据库
SQL语句当前及历史信息查询-performance schema的使用
本文介绍了如何使用MySQL的Performance Schema来获取SQL语句的当前和历史执行信息。Performance Schema默认在MySQL 8.0中启用,可以通过查询相关表来获取详细的SQL执行信息,包括当前执行的SQL、历史执行记录和统计汇总信息,从而快速定位和解决性能瓶颈。
|
3月前
|
监控 NoSQL 网络安全
开发者如何使用阿里云mongo
【10月更文挑战第1天】开发者如何使用阿里云mongo
134 0
|
8月前
|
SQL Oracle 关系型数据库
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
整合Mybatis-Plus高级,Oracle 主键Sequence,Sql 注入器实现自定义全局操作
160 0
|
SQL 分布式计算 运维
冬季实战营第五期学习报告
冬季实战营第五期学习报告
|
SQL Kubernetes 监控
第四期学习报告——相约在冬季实战营~
简介: 在刚刚结束的第三期中,接触到了很多关于MySQL数据库的知识,还学习了SQL语句基础,以及如何在云端使用数据库。本期来到了容器的专题。浏览一下日程安排,发现这期是自开营以来第一次在同一期中安排了两次直播。本期先是介绍了阿里云的容器服务,然后进行了Docker基础知识的梳理,介绍混沌工程,最后在直播中学习利用容器和容器网络文件服务搭建WordPress网站,学习如何保持线上应用的最佳状态,保持业务连续性。
90 0
|
运维 Prometheus Kubernetes
相约在冬季实战营——第四期学习报告
https://developer.aliyun.com/adc/series/wintercamplist4 这一期的实验场景主要和容器相关,docker部署容器,k8s编排容器~~~
535 1
相约在冬季实战营——第四期学习报告
|
SQL Web App开发 弹性计算
学习报告:冬季实战营第三期
在《冬季实战营第三期:MySQL数据库进阶实战》的学习报告
269 0
学习报告:冬季实战营第三期
|
SQL 弹性计算 分布式计算
学习报告:冬季实战营第五期
在《冬季实战营第五期:轻松入门学习大数据》的学习报告
168 0
学习报告:冬季实战营第五期
|
Web App开发 弹性计算 Kubernetes
学习报告:冬季实战营第四期
在《冬季实战营第四期:零基础容器技术实战》的学习报告
195 0
学习报告:冬季实战营第四期