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
在容器配置页面,填入以下示例值,并单击右方的下一步,未提及的配置项请保持默认。
配置项
示例值
镜像名称
nginx
镜像Tag
alpine
所需资源
CPU :1Core
内存:2GB
端口
名称:example-port
容器端口:80
协议:TCP
在高级配置页面,创建一个新的服务(Service),在创建服务面板中在端口映射中填入以下示例值,然后单击面板右下方的创建。
配置项
示例值
名称
example-map
服务端口
80
容器端口
80
协议
TCP
单击右下方的创建,然后点击查看应用详情。
在容器组页签下,等待容器组的状态变为Running。然后单击访问方式页签,记录下nginx-deploy-svc的外部端点(外部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: nginx:alpine 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
步骤二:测试服务
在浏览器中输入nginx-service的外部IP(EXTERNAL-IP)并前往。
如果您看到如下的nginx的初始页面,则表示应用与服务都在正常工作。
后续步骤
您可以为上文创建的应用配置弹性伸缩策略。具体操作,请参见配置集群的弹性伸缩。
如果您不计划配置弹性伸缩,请按照以下步骤释放资源。
登录容器服务管理控制台,在左侧导航栏选择集群。
在集群列表页面,单击目标集群右方的
。在删除集群面板中,选中以下复选框:同时删除集群下的ALB资源,同时删除集群下的PrivateZone资源,我已知晓以上信息并确认删除集群,然后单击确定。