云原生技术学习

ASK与ACK集群的对比

虚拟节点

ASK集群中基于虚拟节点创建Pod。虚拟节点实现了Kubernetes与弹性容器实例ECI的无缝连接,让Kubernetes集群获得极大的弹性能力,而不必关心底层计算资源容量。

Pod配置

Pod基于弹性容器实例ECI创建,其支持原生的Kubernetes Pod功能,包括启动多个容器、设置环境变量、设置RestartPolicy、设置健康检查命令和挂载volumes、preStop等。同时支持执行命令kubectl logs访问容器日志和执行kubectl exec进入容器。

应用负载管理

  • 支持Deployment、StatefulSet、Job/CronJob、Pod、CRD等原生Kubernetes负载类型。
  • 不支持DaemonSet:Serverless集群中不支持节点相关的功能。
  • 网络管理
  • 集群中的ECI Pod默认使用Host网络模式,占用交换机VSwitch的一个弹性网卡ENI资源,与VPC内的ECS、RDS互联互通。
  • Service
    • 支持创建LoadBalancer类型Service。
    • 不支持NodePort类型Service:Serverless集群中不支持节点相关的功能。

服务发现

如果您的集群内部应用需要Service的服务发现功能,请在创建集群时开启Privatezone

日志管理

在ASK集群中无需部署logtail daemonset即可收集Pod的stdout和文件输出日志

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: alpine
  name: alpine
spec:
  replicas: 2
  selector:
    matchLabels:
      app: alpine
  template:
    metadata:
      labels:
        app: alpine
    spec:
      containers:
      - image: alpine
        imagePullPolicy: Always
        args:
        - ping
        - 127.0.0.1
        name: alpine
        env:
        ######### 配置 环境变量 ###########
        ######### 配置 project,如果使用k8s集群默认的project可以不填 ###########
        - name: aliyun_logs_test-stdout_project
          value: k8s-log-xxx
        - name: aliyun_logs_test-file_project
          value: k8s-log-xxx
        ######### 配置 机器组,如果使用k8s集群默认的project下的默认机器组可以不填 ###########
        - name: aliyun_logs_test-stdout_machinegroup
          value: k8s-group-app-alpine
        - name: aliyun_logs_test-file_machinegroup
          value: k8s-group-app-alpine
        ######### 设置标准输出和错误输出的logstore test-stdout###########
        - name: aliyun_logs_test-stdout
          value: stdout
        ######### 将/log/*.log目录下的日志收集到logstore test-file###########
        ######### 注:除了标准输出和错误输出,其他的自定义收集目录必须挂载emptyDirVolume,否则无法收集###########
        ######### 注:比如/log/目录就需要挂载emptyDirVolume,如下###########
        - name: aliyun_logs_test-file
          value: /log/*.log
        ######### 日志保留时间,只对单个logstore生效 ###########
        - name: aliyun_logs_test-stdout_ttl
          value: "7"
        ######### 日志分区数,只对单个logstore生效 ###########
        - name: aliyun_logs_test-stdout_shard
          value: "2"
        #################################
        ######### 配置vulume mount,该volume就是为了上面的自定义的日志收集目录#######
        volumeMounts:
        - name: volume-sls
          mountPath: /log
      volumes:
      - name: volume-sls
        emptyDir: {}

Knative

社区Knative作为一款云原生、跨平台的Serverless编排引擎,您可以直接把社区Knative部署在ASK集群上,但这种方式需要付出额外的成本。ASK集成了Knative,您只需要拥有一个ASK集群并开通Knative功能,就可以基于Knative API使用云的能力。并且无需为Knative Controller付出任何成本。

Knative Gateway

社区Knative默认支持Istio、Gloo、Contour、Kourier和Ambassador等多种Gateway实现方案。在这些实现方案中Istio使用频率最高。因为Istio除了可以充当Gateway的角色还能做为ServiceMesh服务使用。Serverless服务需要有Gateway实例常驻运行,而为了保证高可用至少要有两个实例互为备份。其次这些Gateway的Controller也需要常驻运行,这些常驻实例的IaaS费用和运维都是业务需要支付的成本。

为了极致的Serverless体验,通过阿里云SLB实现了Knative Gateway。Knative Gateway具备所有需要的功能并且属于云产品级别的支撑。不需要常驻资源,不仅节省了您的IaaS成本还省去了很多运维负担。

https://help.aliyun.com/document_detail/86366.html?spm=a2c4g.11186623.6.1170.64af13c6t5ZCgk

https://help.aliyun.com/document_detail/131598.htm?spm=a2c4g.11186623.2.23.75b06f3dOhNMHP#task-1830627

https://help.aliyun.com/document_detail/184831.html?spm=a2c4g.11186623.6.1291.40d8200ansUcMu

本文分享自微信公众号 - 黑洞日志(heidcloud),作者:砥砺前行不负韶华

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-07-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 云原生技术之kubernetes学习笔记(2)

    之前的文章中,我们对k8s能够解决的问题做了简单介绍,简单来说,它解决的问题是容器的编排与调度,它的核心价值在于:运行在大规模集群的任务之间,实际上存...

    AsiaYe
  • 云原生技术之kubernetes学习笔记(3)

    K8S的集群运行依赖Master节点和Node节点的通信,为了更好的理解第4部分的Pod生命周期,我们这里先给出K8S Master的简单架构图,后续...

    AsiaYe
  • ​云原生技术之kubernetes学习笔记(4)

    K8S在启动Pod的时候,会使用yaml文件的方式来启动,今天我们来看看YAML文件最常用的格式。

    AsiaYe
  • 云原生技术之kubernetes学习笔记(1)

    今天我们看看kubernetes技术的介绍,最近在极客时间上看张磊老师的深入kubernetes技术,讲的非常好,有兴趣的同学可以去收听一下,对于理解kuber...

    AsiaYe
  • 云原生技术之docker学习笔记(5)

    这两天在研究docker容器的底层原理和k8是相关的一些东西,说实话,这块儿的内容还挺复杂的,尤其是k8s的集群运维方面,没有一点沉淀真的很难理解各种模块之间的...

    AsiaYe
  • 云原生技术之docker学习笔记(6)

    这里需要备注的是:rootfs只是容器需要使用的基本文件的组合,并不包括操作系统内核,容器的操作系统内核依旧是使用宿主机的内核。当然,rootfs的存在,并不是...

    AsiaYe
  • 云原生技术之docker学习笔记(1)

    最近的工作中,MySQL和MongoDB运维部分的内容比较少。主要工作内容都会频繁接触docker和k8s相关的内容,所以准备写写这块儿的内容。

    AsiaYe
  • 云原生技术之docker学习笔记(2)

    docker镜像是由多个文件系统叠加而成的,最底层是一个引导文件系统,也就是bootfs,用户基本上不会和底层的引导文件系统有任何交互。所以这块不用了解...

    AsiaYe
  • 云原生技术之docker学习笔记(3)

    通常情况下,dockerfile构建镜像比docker commit命令构建 镜像更加灵活,因此采用后者较多。

    AsiaYe
  • 云原生技术之docker学习笔记(4)

    之前的文章中,我们已经说了RUN、FROM、MAINTAINER、EXPOSE等一些DockerFile的相关命令,今天我们来看DockerFile的其他...

    AsiaYe
  • 云原生技术赋能联邦学习

    (本文作者系 VMware 中国研发云原生实验室架构师,联邦学习 KubeFATE / FATE 开源项目维护者和贡献者。)

    Henry Zhang
  • 云原生技术之kubernetes学习笔记(8)---Deployment控制器

    Deployment是k8s中比较常用的控制器,它实现了k8s中一个重要的功能:Pod的水平扩展和水平收缩。

    AsiaYe
  • 云原生技术之kubernetes学习笔记(5)---如何创建Pod?

    在之前的文章中,我们介绍了容器和Pod的区别和关系。我们知道Pod是k8s调度的最小单位,而一个Pod中可以有多个容器,那么我们如何来定义一个我们自己...

    AsiaYe
  • 云原生技术之kubernetes学习笔记(6)---yaml文件关键字段

    今天我们来看k8s中的yaml文件重点字段。我们先随便看一个yaml文件:

    AsiaYe
  • 云原生技术之kubernetes学习笔记(7)---控制器和标签简介

    之前我们了解了Pod是k8s集群中调度的最小单元,Pod是由Pause容器+应用容器组成的。

    AsiaYe
  • 解读云原生技术

    云原生的技术体系看似纷乱繁杂,但在不同视角都体现着“牵一发而动全身”的主线。从时间线来看,容器技术的发展催生了云原生思潮,在底层解决了资源供给问题,随后开源的 ...

    xcbeyond
  • TF云原生技术路线图

    【直播视频回放】 https://v.qq.com/x/page/o3137w1nh3x.html

    Tungsten Fabric
  • 云原生技术之Docker入门

    做过java的同学可能对上图的架构方式比较了解,我们通常会将一个应用程序生成一个war包,放到一个tomcat容器当中并在一台虚拟机(VM)中启动运行,然后配置...

    HankerCloud
  • 云原生生态中的技术栈概览

    这张取自2020/03/02,最新的可见:https://github.com/cncf/landscape

    机械视角

扫码关注云+社区

领取腾讯云代金券