我们需要将业务应用部署到 k8s 集群中。这里我们需要准备好了一个应用并打包成镜像,例如我的镜像地址是:
要让这个 web 应用的镜像在 k8s 中运行,我们首先要定义一个 deployment 资源。
通过创建deploy.yaml来描述 deployment 资源:
通过创建deploy.yaml来描述 deployment 资源:
- image 属性:就是这个 java web 应用的镜像地址;
- replicas 属性:代表这个应用只部署一份;
//yaml文件我的放在根目录下,使用此命令执行就可以成功部署服务
kubectl apply -f ~/deploy.yaml
//完成后,你可以通过下面的命令查看刚才部署的 pod
kubectl get pod
//看到如下提示代表应用部署完成,注意其中的 status 字段。只有 Running 才是运行中的状态哦,如果是 ContainerCreating 代表服务容器正在创建中,需要等待一段时间才能使用
NAME READY STATUS RESTARTS AGE
myapp-deployment-5cd4d7c78d-lxvcw 1/1 Running 0 12s
2、部署业务应用(部署服务接收外部请求,固定ip)
部署服务,我们继续 yaml 文件的方式操作,创建 service.yaml:
k8s 是一个集群,deployment、service 都是集群内部的资源,他们通过一个内部虚拟网络互相访问。
但是对于外部的用户,这些所有的资源都是不可见的,所以我们还需要配置一个外部访问的入口到 service 的映射规则,从而将内部服务暴露出去。
这里我们就需要使用 ingress 的来实现服务对外暴露的需求。
光是配置并提供服务只完成了一半的工作,完整的操作周期除了正向的安装,还包含了逆向的卸载,下面我们就来学习如何把刚才配置的各种资源给卸载掉。
资源卸载我们就不使用 yaml 脚本了,直接使用 kubectl 命令就可以完成:
卸载 ingress
kubectl delete ingress example-ingress
卸载 service
kubectl delete service myapp-service
卸载 deployment
kubectl delete deployment myapp-deployment
参考资料: