k8s 部署memcached ,对外域名为:memcached.idc.xt

要在Kubernetes上部署Memcached并将其公开为“memcached.idc.xt”域名,可以遵循以下步骤:

  1. 创建一个Kubernetes的deployment

首先,需要创建一个Kubernetes deployment来运行Memcached容器。可以使用以下命令创建一个名为“memcached-deployment”的deployment:

 
kubectl create deployment memcached-deployment --image=memcached --replicas=1

 

这将创建一个名为“memcached-deployment”的deployment,并使用Memcached的默认镜像来创建一个副本(replica)。

  1. 创建一个Kubernetes的service

接下来,需要创建一个Kubernetes service来公开Memcached deployment。可以使用以下命令创建一个名为“memcached-service”的service:

kubectl create service clusterip memcached-service --tcp=11211:11211

 

这将创建一个名为“memcached-service”的service,并将其公开为ClusterIP类型。该服务将Memcached容器中的11211端口映射到Kubernetes集群内的11211端口。

  1. 创建一个Kubernetes ingress

最后,需要创建一个Kubernetes ingress来将“memcached.idc.xt”域名映射到Memcached service。可以使用以下YAML文件创建一个名为“memcached-ingress”的ingress:

 
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: memcached-ingress
spec:
  rules:
  - host: memcached.idc.xt
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: memcached-service
            port:
              name: memcached

 

将此文件保存为“memcached-ingress.yaml”,然后使用以下命令创建ingress:

kubectl apply -f memcached-ingress.yaml

 

这将创建一个名为“memcached-ingress”的ingress,并将“memcached.idc.xt”域名映射到Memcached service。

现在,可以使用“memcached.idc.xt”域名来访问Memcached服务。

 

补充

k8s Kubernetes的service 和 deployment来运行Memcached容器 的关系

在Kubernetes中,Deployment是用来创建和管理Pods的资源对象,而Service是一种抽象,用于将一组Pods公开为稳定的网络服务。在运行Memcached容器的场景中,Deployment将负责创建和管理运行Memcached容器的Pods,而Service将负责将这些Pods公开为一个稳定的网络服务。

具体来说,Deployment对象定义了运行Memcached容器所需的Pod模板,并可以指定需要运行多少个Pod。Kubernetes会使用该Deployment对象来创建并管理相应数量的Pods,并确保这些Pods的状态与Deployment定义的期望状态一致。这意味着,如果一个Pod失败或终止,Deployment将自动创建一个新的Pod来替代它。

而Service对象则定义了一组Pods的网络访问策略,例如负载均衡、服务发现等。对于运行Memcached容器的场景,可以使用Service对象将所有运行Memcached容器的Pods公开为一个单独的服务。这样,其他应用程序可以通过访问该服务的名称和端口来访问Memcached容器,而无需知道具体运行该容器的Pod的IP地址和端口。

因此,在Kubernetes中,Service和Deployment是紧密相关的资源对象,分别用于管理网络服务和容器部署。在运行Memcached容器的场景中,Deployment用于创建和管理容器Pods,而Service用于将这些Pods公开为一个网络服务。

 
 
k8s 中的service 是通过 Memcached容器的Pods 的端口来确定对应关系的?

在Kubernetes中,Service对象可以通过多种方式与Pods建立对应关系,其中一种方式是通过Pods的端口号来确定对应关系。具体来说,在运行Memcached容器的场景中,可以通过创建一个Service对象,并将其类型设置为ClusterIP来将所有运行Memcached容器的Pods公开为一个服务。在创建Service对象时,可以指定一个或多个目标端口,这些目标端口将与Pods的端口进行匹配,从而建立Service对象与Pods的对应关系。

例如,如果Memcached容器运行在Pods的11211端口上,可以创建一个Service对象,并将其目标端口设置为11211,这样Service对象将会将所有运行Memcached容器的Pods与该端口建立对应关系。然后,其他应用程序可以通过访问该Service对象的名称和端口来访问Memcached容器,而Kubernetes将负责将请求转发到对应的Pods上。

需要注意的是,如果Memcached容器运行在Pods的不同端口上,或者一个Pod上运行多个Memcached容器,则需要通过Service对象的端口映射来指定对应关系。具体来说,可以创建一个Service对象,并将其目标端口设置为需要访问的端口号,然后使用端口映射将该端口映射到Pods中运行Memcached容器的端口上。这样,Service对象就可以正确地将请求转发到对应的Pods上了。

posted @ 2023-03-13 14:10  zxh263  阅读(166)  评论(0)    收藏  举报