阿里云容器化产品使用

简介: 阿里云容器化产品使用

第一期k8s环境部署

创建无状态应用

在集群详情选择无状态菜单,选择镜像创建,填写应用名称、镜像地址和tag,设置资源配置和端口,在高级配置中选择服务(Service)右边的创建,填写服务的名称、类型、以及服务端口和容器端口,然后点创建,完成后到应用详情查看应用状态

测试应用

在容器首页查看网络下面的服务有对应的公网ip,在浏览器访问公网ip则可以访问到上面部署的无状态服务

prometheus监控

在容器首页点击运维管理下的prometheus的监控菜单,里面会有容器的各种监控指标

第二期容器环境docker安装

  1. docker环境安装

1.1 安装依赖库

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

1.2 添加docker镜像源

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

1.3 安装docker ce
yum makecache fast && yum -y install docker-ce

1.4 配置docker镜像加速

tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

1.5 启动docker

  1. 构建docker本地镜像以及运行镜像

2.1 创建工作空间同时编写hello world代码

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

2.2 创建dockerfile文件
在项目根目录创建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
2.3 开始构建本地镜像

docker build . -t demo:v1
.: 代表构建本地路径
-t: 代表tag

2.4 运行本地镜像
docker run -d -p 9000:80 demo:v1

-d:后台运行
-p 指定端口映射
demo:v1: 运行镜像的tag

第三期chaosblade体验

  1. 创建集群

1.1 创建kubernetes集群

1.2 部署应用资源

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



创建后大概3-5分钟后在无状态菜单中看到部署的服务,如下图

通过前端应用frontend的详情frontend-external获取前端访问地址,至此容器部署完成

  1. 部署探针

在容器服务-Kubernetes首页的应用中心菜单找到集群,进入集群详情,选择左侧应用菜单下的helm创建ack-ahas-pilot探针服务,安装完成后会出现下图:

  1. chaosblade故障演练

首先进入chaosblade首页https://chaos.console.aliyun.com/,在架构感知里面选择kubernetes监控视图,如下图

选择命名空间

后续由于探针功能异常,无法继续进行演练步骤

4.存在问题

创建ack-ahas-pilot探针后在场景演练中没有frontend可选,如下图:

本以为是ack-ahas-pilot问题,我在heml下删除ack-ahas-pilot后,重新创建会提示已经存在资源,入下图:

目录
相关文章
|
3月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
420 3
|
11月前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
331 8
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
9月前
|
安全 持续交付 云计算
课时5:阿里云容器服务:最原生的集成Docker和云服务
阿里云容器服务以服务化形式构建容器基础设施,大幅提升开发效率,简化应用部署流程。通过Docker容器和DevOps工具(如Jenkins),实现自动化部署与迭代,优化企业内部复杂部署问题。该服务支持GPU调度、混合云架构无缝迁移,并与阿里云产品体系无缝集成,提供安全防护、网络负载均衡等多重功能支持。凭借微服务架构,帮助企业突破业务瓶颈,提高资源利用率,轻松应对海量流量。
341 0
课时5:阿里云容器服务:最原生的集成Docker和云服务
|
10月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
10月前
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
12月前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
9月前
|
人工智能 Kubernetes Serverless
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
阿里云向全球客户推出创新容器计算服务ACS,可降低算力成本高达55%
|
10月前
|
弹性计算 监控 持续交付
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
面对热点事件,阿里云如何通过云上弹性与容器服务帮助客户应对流量洪峰
250 0
|
10月前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
11月前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。