阿里云容器化产品使用

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 阿里云容器化产品使用

第一期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后,重新创建会提示已经存在资源,入下图:

目录
相关文章
|
4天前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
27天前
|
运维 Kubernetes Java
阿里云容器计算服务ACS ,更普惠易用、更柔性、更弹性的容器算力
ACS是阿里云容器服务团队推出的一款面向Serverless场景的子产品,基于K8s界面提供符合容器规范的CPU及GPU算力资源。ACS采用Serverless形态,用户无需关注底层节点及集群运维,按需申请使用,秒级按量付费。该服务旨在打造更普惠易用、更柔性、更弹性的新一代容器算力,简化企业上云门槛,加速业务创新。ACS支持多种业务场景,提供通用型、性能型及BestEffort算力质量,帮助客户更从容应对流量变化,降低综合成本。
|
8天前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
9天前
|
Ubuntu Linux 开发工具
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
Docker 是一个开源的容器化平台,允许开发者将应用程序及其依赖项打包成标准化单元(容器),确保在任何支持 Docker 的操作系统上一致运行。容器共享主机内核,提供轻量级、高效的执行环境。本文介绍如何在 Ubuntu 上安装 Docker,并通过简单步骤验证安装成功。后续文章将探讨使用 Docker 部署开源项目。优雅草央千澈 源、安装 Docker 包、验证安装 - 适用场景:开发、测试、生产环境 通过以上步骤,您可以在 Ubuntu 系统上成功安装并运行 Docker,为后续的应用部署打下基础。
docker 是什么?docker初认识之如何部署docker-优雅草后续将会把产品发布部署至docker容器中-因此会出相关系列文章-优雅草央千澈
|
27天前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
13天前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
5天前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
27天前
|
供应链 安全 Cloud Native
阿里云容器服务助力企业构建云原生软件供应链安全
本文基于2024云栖大会演讲,探讨了软件供应链攻击的快速增长趋势及对企业安全的挑战。文中介绍了如何利用阿里云容器服务ACK、ACR和ASM构建云原生软件供应链安全,涵盖容器镜像的可信生产、管理和分发,以及服务网格ASM实现应用无感的零信任安全,确保企业在软件开发和部署过程中的安全性。
|
27天前
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
|
27天前
|
人工智能 运维 Kubernetes
拥抱智算时代:阿里云容器服务智能、托管、弹性新体验
本文总结了2024云栖大会容器计算专场的演讲内容,重点介绍了阿里云容器服务的新产品体验,包括智能、托管、弹性的特点,以及如何助力客户拥抱智算时代。文中还分享了多项实际案例和技术细节,展示了阿里云容器服务在提升用户体验和解决实际问题方面的努力。