Kubectl
目标:测试服务器上的nginx接入k8s
1、kubectl安装
确保测试服务器有安装kubectl:
kubectl version
安装参考官网文档:https://kubernetes.io/docs/tasks/tools/install-kubectl/
2、镜像准备
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 881bd08c0b08 7 months ago109MB
3、部署
kubectl create deployment phtest-nginx --image=nginx
4、更新版本
5、停服
Rancher
1、镜像准备
通过rancher界面部署的方式,需要rancher能找到镜像。因此需要使用镜像仓库。
以dmp部署为例,3个镜像都推到镜像仓库中:
image.png
2、部署服务
项目>>工作负载>>部署服务
image.pngDMP服务端
-
Docker镜像:这里就是填写第一步准备的镜像
-
容器端口:容器需要暴露的服务端口
image.png -
环境变量:根据需要配置,dmp的服务在此指定一些JVM参数和springboot参数
image.png -
数据卷:数据持久化的设置,dmp将日志文件做持久化,便于查询问题
image.png
项目>>工作负载>>服务发现
上面的步骤实际是创建了3个pod,每个pod有独立的集群IP,他们是只对集群内部可见的。
image.png
项目>>工作负载>>服务发现>>添加DNS记录
image.png
image.png
3、负载均衡
如果pod被删除再重建,IP就会改变。。但是现实中我们往往是需要一个稳定的域名,这样无论后台服务运行在哪里,我都能通过那个域名访问服务。也就是负载均衡。
项目>>工作负载>>负载均衡>>添加Ingress规则
由于dmp的nginx监听xxxx.mycompany.com
这个域名,因此我们需要对容器服务做一层域名解析。
配置完成后:
image.png
4、访问服务
xxxx.mycompany.com
,此时你访问的就是我们刚刚通过rancher部署在k8s上的新服务了哟。
5、服务更新
应用程序版本更新怎么办?
服务>>更多>>升级>>更新版本号>>保存,k8s随后即自动升级服务。
image.pngimage.png
6、ConfigMap
应用程序通常有很多配置项,为了镜像的可移植性,通常我们是不把配置打到镜像里的。
通过ConfigMap可实现配置外置。
以dmp的nginx配置文件为例:
dmp-client.mycompany.com.conf
dmp.mycompany.com.conf
>>资源>>配置映射ConfigMap
image.png- 添加ConfigMap
-
使用ConfigMap
1)在deployment的数据卷中使用
修改deployment>添加卷>添加ConfigMap卷>选择ConfigMap>填写容器路径,在容器启动时,配置卷会且以key的名字生成文件,并挂载到指定路径下。
image.png查看容器:文件以软链的方式存在
image.png2)在deployment的环境变量中使用
image.png
网友评论