ACK Serverless集群无需管理节点,无需进行节点的安全维护等运维操作,满足您对应用托管的免运维诉求,让您关注在应用而非底层基础设施管理。本文介绍如何通过ACK Serverless快速部署基于官方Nginx镜像的在线Web应用。
完成本教程预计产生0.25元左右的费用(假设您的资源运行0.5 小时)。您可以在完成本教程后进行后续步骤或释放资源。
前提条件
已创建ACK Serverless集群。具体操作,请参见创建ACK Serverless集群。
已为集群API Server绑定公网连接端点。具体操作,请参见控制集群API Server的公网访问能力。
已为集群所属VPC配置公网NAT网关及SNAT条目。具体操作,请参见使用公网NAT网关SNAT功能访问互联网。
步骤一:部署Nginx服务
通过控制台部署
步骤一:创建Nginx应用并绑定服务
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择 。
在无状态页面,单击右上方的使用镜像创建。
在应用基本信息页面,填入以下示例值,然后单击下一步。
未提及的配置项请保持默认。
配置项
示例值
应用名称
nginx-deploy
副本数量
1
在容器配置页面,填入以下示例值,然后单击下一步。
未提及的配置项请保持默认。
配置项
示例值
镜像名称
anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
所需资源
CPU :1Core
内存:2GB
端口
名称:example-port
服务端口:80
容器端口:80
协议:TCP
在高级配置页面,创建一个新的服务(Service),在创建服务面板中填入以下示例值,然后单击确定。
未提及的配置项请保持默认。
配置项
示例值
服务名称
nginx-deploy-svc-test
服务类型
负载均衡 (LoadBalancer)
负载均衡类型:传统型负载均衡 CLB
选择资源:新建资源
端口映射
名称:example-map
服务端口:80
容器端口:80
协议:TCP
单击创建,然后点击查看应用详情。
在应用详情的容器组页签下,等待容器组的状态变为Running,然后单击访问方式页签,在外部端点处获取外部访问服务的IP地址。
通过kubectl部署
以下示例可通过本地机器或CloudShell中的kubectl完成。在使用CloudShell时,不需要配置config文件。
步骤一:创建Nginx应用并绑定服务
通过kubectl连接ACK Serverless集群。具体操作,请参考通过kubectl连接Kubernetes集群。
使用以下样例创建名为nginx.yaml的配置文件。
apiVersion: v1 kind: Service metadata: name: nginx-deploy-svc spec: ports: - port: 80 protocol: TCP selector: app: nginx type: LoadBalancer --- apiVersion: apps/v1 # 对于不同的K8s版本这里需要使用不同的对应版本。 kind: Deployment metadata: name: nginx-deploy labels: app: nginx spec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 resources: requests: cpu: "1" memory: "2Gi"
执行以下命令,将nginx.yaml中的配置应用到集群。
kubectl apply -f nginx.yaml
预期输出:
service/nginx-service created deployment.apps/nginx-deploy created
执行以下命令,查看应用的详细信息。
kubectl get deploy
预期输出:
NAME READY UP-TO-DATE AVAILABLE AGE nginx-deploy 1/1 1 1 9m32s
执行以下命令,查看服务的详细信息,并记录下“nginx-service”的外部IP(EXTERNAL-IP)。
kubectl get svc
预期输出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 172.XX.X.X <none> 443/TCP 10d nginx-service LoadBalancer 172.19.X.XXX 47.57.XX.XX 80:32278/TCP 39s
步骤二:测试服务
在浏览器中输入获取的服务外部IP地址(EXTERNAL-IP)并前往。
如果您看到如下的Nginx的初始页面,则表示应用与服务都在正常工作。
后续步骤
您可以为上文创建的应用配置弹性伸缩策略。具体操作,请参见配置集群的弹性伸缩。
如果您不计划配置弹性伸缩,请按照以下步骤释放资源。
删除已创建的应用和服务
在容器服务管理控制台的集群列表页面,单击目标集群名称。
在左侧导航栏选择工作负载 > 无状态,然后选中已创建的Nginx应用,单击批量删除,并按界面提示完成后续确认操作。
删除集群
ACK Serverless集群目前不收取集群管理费用,但在使用ACK Serverless集群过程中用到的其他阿里云云产品资源(如ECI),您需要按照各云产品规定的计费规则,为您使用的资源付费,费用由各云产品收取。完成教程后,请参考以下场景处理集群: