云原生技术学习
Posted 云服务圈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云原生技术学习相关的知识,希望对你有一定的参考价值。
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
以上是关于云原生技术学习的主要内容,如果未能解决你的问题,请参考以下文章