ACS Pod实例概述
本文主要介绍ACS Pod的使用准备工作、使用限制以及核心功能,包括安全隔离、CPU/Memory资源和规格配置、镜像拉取、存储、网络、日志收集等。
实例类型定义
ACS当前提供了3种实例类型,3种实例均是运行在x86架构服务器上。不同的实例类型在资源供给上会有所区别,以适应不同的业务场景。
实例类型 | 标签 | 实例特点 | 典型应用场景 |
通用型【默认】 | standard |
|
|
best-effort |
|
| |
独享型 | exclusive |
|
|
您可以通过Pod上的alibabacloud.com/instance-type
标签来指定实例的类型。下面是一个Nginx应用的示例编排,指定了实例为通用型。
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
# 通用型(standard), 任务型(best-effort), 独享型(exclusive)
# 不填默认为通用型
alibabacloud.com/instance-type: standard
spec:
containers:
- name: nginx
image: nginx:1.7.9
Kubernetes应用限制
ACS通过虚拟节点与Kubernetes实现无缝对接,因此ACS实例并不会运行在一个集中式的真实节点上,而是打散分布在整个阿里云的资源池中。基于公有云的安全性和虚拟节点本身带来的限制,ACS目前还不支持Kubernetes中的HostPath、DaemonSet等功能,具体如下表所示。
限制项 | 说明 | 推荐替代方案 |
HostPath | 限制挂载本地宿主机文件到容器中 | 使用emptyDir、云盘或者NAS文件系统 |
HostNetwork | 限制将宿主机端口映射到容器上 | 使用type=LoadBalancer的负载均衡 |
HostIPC | 限制容器进程和宿主机进程间通信 | 用户不感知节点,无需使用 |
HostPID | 限制容器可见宿主机PID空间 | 用户不感知节点,无需使用 |
DaemonSet | 限制使用Daemonset类workload | 通过Sidecar形式在Pod中部署多个镜像 |
Linux capabilities | 限制Linux系统特权(securityContext.capabilities)使用 说明 支持使用的特权:
| 使用允许值 |
Sysctl | 限制内核参数(securityContext.sysctls)使用 | 暂无 |
Secret/Configmap引用 | 限制Pod使用过多的Secret/Configmap 说明 具体限制:
| 使用允许数量范围的引用 |
PrivilegeEscalation | 限制容器进行特权提升(securityContext.allowPrivilegeEscalation) | 使用默认配置 |
Privileged Container | 限制容器拥有privileged权限 | 使用Security Context为Pod添加允许的capability或sysctl |
ProcMount | 限制配置securityContext.procMount为Unmasked | 使用默认(default)配置值 |
RuntimeClassName | 限制配置RuntimeClassName | 使用默认配置 |
Overhead | 限制配置Overhead | 使用默认配置 |
LivenessProbe/ReadinessProbe/StartupProbe | 限制配置HTTPGet.Host及TCPSocket.Host字段值 | 使用默认配置 |
核心功能
功能项 | 说明 |
安全隔离 | 作为安全可靠的Serverless容器运行环境,每个ACS实例底层通过轻量级安全沙箱技术完全强隔离,实例间互不影响。同时实例在调度时尽可能分布在不同的物理机上,进一步保障了高可用性。 |
CPU/Memory资源或规格配置 |
说明 当容器指定的资源上限超过了整个Pod所有容器预定资源的总和,ACS会改写容器的资源上限为整个Pod所有容器预定资源的总和。例如所有容器相加的资源为2 vCPU和3 GiB内存,其中单个容器如果指定了资源上限为3 vCPU和5GIB内存,则该容器资源上限会被改写成2 vCPU 和4 GiB。 |
镜像 | 镜像拉取 ACS Pod默认每次启动后使用Pod关联的VPC从远端拉取容器镜像。如果镜像为公共镜像,则需要开通VPC的NAT网关。建议您将容器镜像存储在阿里云镜像仓库(ACR),通过VPC网络减少镜像拉取时间。另外对于ACR上的私有镜像,实现了免密拉取功能方便您使用。 |
存储 | ACS支持云盘和NAS两种持久化存储。 |
网络 | ACS Pod默认使用独立的Pod IP,占用交换机vSwitch的一个成员网卡(Member ENI)资源。 在Kubernetes集群环境中,ACS Pod互联互通的方法如下:
|
日志采集 | 您可以直接配置Pod的Env收集 |
资源规格
Pod规格限制项 | 限制描述 |
CPU |
|
内存 |
|
存储 |
|
网络带宽(入 + 出) |
|