日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口)

發(fā)布時(shí)間:2025/1/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

k8s使用port-forward訪問(wèn)集群中的應(yīng)用程序

本文描述了如何使用 kubectl port-forward 訪問(wèn) Kubernetes 集群中的 Redis Server。這種連接方式在實(shí)際進(jìn)行Debug時(shí)非常有效。

  • 為Redis創(chuàng)建Deployment和Service
  • 轉(zhuǎn)發(fā)本地端口到Pod的端口
  • 總結(jié)

為Redis創(chuàng)建Deployment和Service

  • 創(chuàng)建 Redis Deployment,YAML文件如下:

    apiVersion: apps/v1 kind: Deployment metadata:name: redis-masterlabels:app: redis spec:selector:matchLabels:app: redisrole: mastertier: backendreplicas: 1template:metadata:labels:app: redisrole: mastertier: backendspec:containers:- name: masterimage: redisresources:requests:cpu: 100mmemory: 100Miports:- containerPort: 6379

    執(zhí)行命令,以創(chuàng)建 Redis Deployment

    kubectl apply -f https://kuboard.cn/statics/learning/ptc/port-forward/redis-master-deployment.yaml

    執(zhí)行命令,查看Pod狀態(tài):

    kubectl get pods

    輸出結(jié)果如下:

    NAME READY STATUS RESTARTS AGE redis-master-765d459796-258hz 1/1 Running 0 50s

    執(zhí)行命令,查看 Deployment狀態(tài):

    kubectl get deployment

    輸出結(jié)果如下

    NAME READY UP-TO-DATE AVAILABLE AGE redis-master 1/1 1 1 55s

    執(zhí)行命令,查看ReplicaSet狀態(tài)

    kubectl get rs

    輸出結(jié)果如下:

    NAME DESIRED CURRENT READY AGE redis-master-765d459796 1 1 1 1m
  • 創(chuàng)建Redis服務(wù),YAML文件如下所示:

    apiVersion: v1 kind: Service metadata:name: redis-masterlabels:app: redisrole: mastertier: backend spec:ports:- port: 6379targetPort: 6379selector:app: redisrole: mastertier: backend

    執(zhí)行命令,創(chuàng)建Service

    kubectl apply -f https://kuboard.cn/statics/learning/ptc/port-forward/redis-master-service.yaml

    執(zhí)行命令,檢查Service創(chuàng)建結(jié)果

    kubectl get svc | grep redis

    輸出結(jié)果如下所示:

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE redis-master ClusterIP 10.100.0.213 <none> 6379/TCP 27s
  • 驗(yàn)證 Redis Service已經(jīng)運(yùn)行,并監(jiān)聽了 6379 端口

    kubectl get pods redis-master-765d459796-258hz --template='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'

    請(qǐng)將 redis-master-765d459796-258hz 替換成你實(shí)際 redis 的名字 輸出結(jié)果如下所示:

    6379

轉(zhuǎn)發(fā)本地端口到Pod的端口

  • 使用 kubectl port-forward 命令,用戶可以使用資源的名稱來(lái)進(jìn)行端口轉(zhuǎn)發(fā)。下面的命令中的任意一行,都可以實(shí)現(xiàn)端口轉(zhuǎn)發(fā)的效果:

    # 這幾個(gè)命令執(zhí)行任意一個(gè)即可 kubectl port-forward redis-master-765d459796-258hz 7000:6379 kubectl port-forward pods/redis-master-765d459796-258hz 7000:6379 kubectl port-forward deployment/redis-master 7000:6379 kubectl port-forward rs/redis-master 7000:6379 kubectl port-forward svc/redis-master 7000:6379

    以上命令的輸出結(jié)果類似:

    I0710 14:43:38.274550 3655 portforward.go:225] Forwarding from 127.0.0.1:7000 -> 6379 I0710 14:43:38.274797 3655 portforward.go:225] Forwarding from [::1]:7000 -> 6379
  • 啟動(dòng) Redis 命令行:

    redis-cli -p 7000
  • 在Redis命令行工具的提示符下,輸入 ping 命令,如下所示:

    127.0.0.1:7000>ping

    Redis 服務(wù)器將返回 PONG

總結(jié)

本機(jī) 7000 端口的連接被轉(zhuǎn)發(fā)到集群中 Redis Server 所在 Pod 的 6379 端口。當(dāng)此連接存在時(shí),您可以使用您自己的機(jī)器上的客戶端對(duì)部署在集群中的 Redis Server 進(jìn)行 Debug。

提示

  • 由于一些限制,port-forward 目前只支持 TCP 協(xié)議,issue 47862 (opens new window)用來(lái)跟進(jìn)對(duì) UDP 協(xié)議的支持。
  • MySQL數(shù)據(jù)庫(kù)等使用 TCP 協(xié)議的部署在K8S集群中的服務(wù)器,都可以使用此方式進(jìn)行 DEBUG

參考鏈接:

https://kuboard.cn/learning/k8s-practice/access/port-forward.html

總結(jié)

以上是生活随笔為你收集整理的k8s使用port-forward访问集群中的应用程序(只能在执行命令的机器上开放端口)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。