2. 部署业务应用
- 执行如下命令,创建名为app-ns的命名空间。
说明:通常创建应用需要确定部署在k8s的哪个namespace中,一般不建议部署在default namespace下,索引我们创建名为app-ns的命名空间。
kubectl create ns app-ns
- 执行如下命令,创建deploy.yaml文件。
说明:现在我们需要将业务应用部署到k8s集群中,这里我们已经准备好了一个应用并打包成镜像,镜像地址如下:
仓库地址:registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube。
版本: 1.0。
这是一个示例性质的魔方游戏应用。这个应用会监听80端口,接受根路径的访问,返回一个简单的魔方游戏界面。要让这个web应用的镜像在k8s中运行,我们首先要定义一个 deployment资源然后,通过创建deploy.yaml来描述deployment资源。
vim deploy.yaml
- 按i键进入编辑模式,将如下代码复制到文件中,然后按ECS退出编辑模式,输入:wq后按下Enter键保存并退出。
参数说明:
- image:就是这个web应用的镜像地址。
- replicas:代表这个应用只部署一份。
apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment namespace: app-ns labels: app: myapp spec: replicas: 1 selector: matchLabels: name: myapp template: metadata: labels: name: myapp namespace: app-ns spec: containers: - name: ack-kube image: registry.cn-hangzhou.aliyuncs.com/acr-toolkit/ack-cube:1.0 ports: - containerPort: 80 resources: requests: cpu: 0.25 memory: 512Mi limits: cpu: 1 memory: 1024Mi
- 执行如下命令,运行deploy.yaml文件,部署应用。
kubectl apply -f ~/deploy.yaml
- 执行如下命令,查看部署的POD。
kubectl get pod -n app-ns
返回结果如下,当您看到status字段为Running时,代表应用部署完成,处于运行中的状态。如果您看到的是ContainerCreating,代表服务容器正在创建中,需要您耐心等待应用创建完成。
至此,我们已经完成了应用本身的部署,下面我们看下如何在k8s里配置服务。