应用访问比对
本文介绍容器服务Swarm集群与Kubernetes集群的应用访问比对,包括集群内部应用间访问及从集群外部访问应用。
集群内部应用间访问
容器服务Swarm集群
集群内部可以通过links
标签,将需要被访问的服务名称设置到容器的环境变量中。
links: #---7
- 'db:mysql'
容器服务Kubernetes集群
在容器服务Kubernetes集群内部,可通过Service的ClusterIP或服务名称进行应用间访问。推荐使用服务名称进行应用间的访问。
在创建应用时,可以将需要被访问服务的服务名称以环境变量的方式使用。
spec:
containers:
- image: wordpress:4
name: wordpress
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql #---7 通过名称指向需要访问的mysql,该名称与mysql service的名称相对应。
- name: WORDPRESS_DB_PASSWORD
从集群外部访问应用
- 无论经典网络还是VPC,请确保网络的连通。
- DNS具有负载均衡的能力,可将流量分发到不同的后端IP。
- 通过域名作为应用的访问入口,可以不停机地将业务从Swarm集群迁移到Kubernetes集群。
简单路由(域名绑定到容器服务Swarm集群默认的SLB上)
为实现应用从容器服务Swarm集群迁移到Kubernetes集群,需要先在容器服务Kubernetes集群上创建应用,测试可用后,再进行应用迁移。
迁移方法
- 在容器服务Kubernetes集群上通过以下步骤创建应用
- 在容器服务Kubernetes集群上创建与Swarm集群相同类型的应用。
- 在容器服务Kubernetes集群上为应用创建Loadbalancer类型的服务(Service)。
- Loadbalancer类型的服务会创建SLB,在本例中为2.2.2.2。
- 在DNS中test.com域名的后端IP增加2.2.2.2这个IP地址。
- 验证Kubernetes集群的应用可用
通过IP地址2.2.2.2可以正常访问应用,说明容器服务Kubernetes集群上的应用可用。
- 应用迁移
将DNS中test.com域名的后端IP地址1.1.1.1删除。
后续流量经过DNS后全部流向Kubernetes集群上的应用。
简单路由(域名绑定到应用在容器服务Swarm集群上自建的SLB)
- SLB不是集群默认的,而是自建的。
- DNS默认为云解析DNS,如果用户使用自己的域名,需要自行解析。
迁移方法
与域名绑定到容器服务Swarm集群默认的SLB的方法相同:在容器服务Kubernetes集群上创建应用,测试可用后,再进行应用迁移。
通过<HostIP>:<port>访问应用
如果您通过<HostIP>:<port>的方式访问应用,那么在原容器服务Swarm集群的基础上无法做到不停机迁移业务,请选择业务量小的时候进行业务的迁移。
- 在容器服务Kubernetes集群上创建应用,并通过NodePort类型的服务完成应用对外访问方式的暴露,请参考端口映射。
- 记录该<NodePort>,将Swarm集群的<port>替换为Kubernetes集群的<NodePort>。
说明 此步骤需要逐个停止并修改应用实例。
- 将Kubernetes集群内的worker节点,挂载到Swarm集群的SLB下。
- 当有流量时,会有部分流量进入Kubernetes集群的应用,待Kubernetes集群的应用验证可用后,将SLB中Swarm集群的节点删除,完成集群的迁移。
通过负载均衡访问应用
如果您通过负载均衡的方式访问应用,那么在原容器服务Swarm集群的基础上无法做到不停机迁移业务,请选择业务量小的时候进行业务的迁移。
迁移方法
容器Kubernetes集群LoadBalancer的使用方法与容器服务Swarm的负载均衡一样,请参考负载均衡路由配置。
发布者:佚, 佚名,转转请注明出处:https://www.cms2.cn/aliyun/csk/5087.html