zoukankan      html  css  js  c++  java
  • 使用Port Forwarding连接k8s集群的pod(redis、mysql等)

    一. 创建Redis的deployment和service

    1. 创建Redis deployment

      redis-master-deployment.yaml 

    apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
    kind: Deployment
    metadata:
      name: redis-master
      labels:
        app: redis
    spec:
      selector:
        matchLabels:
          app: redis
          role: master
          tier: backend
      replicas: 1
      template:
        metadata:
          labels:
            app: redis
            role: master
            tier: backend
        spec:
          containers:
          - name: master
            image: k8s.gcr.io/redis:e2e  # or just image: redis
            resources:
              requests:
                cpu: 100m
                memory: 100Mi
            ports:
            - containerPort: 6379

    执行:

    kubectl create -f redis-master-deployment.yaml

    查看执行结果:

    deployment "redis-master" created
    当 pod 是 ready 时,将得到:
    
       kubectl get pods
    
        NAME                            READY     STATUS    RESTARTS   AGE
        redis-master-765d459796-258hz   1/1       Running   0          50s
    
       kubectl get deployment
    
        NAME         DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
        redis-master 1         1         1            1           55s
    
       kubectl get rs
    
        NAME                      DESIRED   CURRENT   READY     AGE
        redis-master-765d459796   1         1         1         1m

    2. 创建redis service

       redis-master-service.yaml

    apiVersion: v1
    kind: Service
    metadata:
      name: redis-master
      labels:
        app: redis
        role: master
        tier: backend
    spec:
      ports:
      - port: 6379
        targetPort: 6379
      selector:
        app: redis
        role: master
        tier: backend

    执行:

    kubectl create -f redis-master-service.yaml

    查看结果:

    service "redis-master" created

    3. 验证 Redis 服务是否运行在 pod 中并且监听 6379 端口:

    kubectl get pods redis-master-765d459796-258hz –template=‘{{(index (index .spec.containers 0).ports 0).containerPort}}{{”
    ”}}’

    输出:

    6379

    二、转发一个本地端口到Pod端口

    1. 从 Kubernetes v1.10 开始,kubectl port-forward 允许使用资源名称(例如服务名称)来选择匹配的 pod 来进行端口转发。

    kubectl port-forward redis-master-765d459796-258hz 6379:6379

    相当于:

    kubectl port-forward pods/redis-master-765d459796-258hz 6379:6379

    kubectl port-forward deployment/redis-master 6379:6379

    kubectl port-forward rs/redis-master 6379:6379

    kubectl port-forward svc/redis-master 6379:6379

    以上的命令都有效,输出类似于:

    I0710 14:43:38.274550    3655 portforward.go:225] Forwarding from 127.0.0.1:6379 -> 6379
    I0710 14:43:38.274797    3655 portforward.go:225] Forwarding from [::1]:6379 -> 6379

    2. 启动 Redis 命令行接口:

    redis-cli

    在 Redis 命令行提示符下,输入 ping 命令:

    127.0.0.1:6379>ping

    提示ping成功

    与本地 6379 端口建立的连接将转发到运行 Redis 服务器的 pod 的 6379 端口。通过此连接,可以使用本地工作站来调试在 pod 中运行的数据库。

  • 相关阅读:
    ZOJ 3765 Lights (zju March I)伸展树Splay
    UVA 11922 伸展树Splay 第一题
    UVALive 4794 Sharing Chocolate DP
    ZOJ 3757 Alice and Bod 模拟
    UVALive 3983 捡垃圾的机器人 DP
    UVA 10891 SUM游戏 DP
    poj 1328 Radar Installatio【贪心】
    poj 3264 Balanced Lineup【RMQ-ST查询区间最大最小值之差 +模板应用】
    【转】RMQ-ST算法详解
    poj 3083 Children of the Candy Corn 【条件约束dfs搜索 + bfs搜索】【复习搜索题目一定要看这道题目】
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/11897868.html
Copyright © 2011-2022 走看看