• 欢迎访问1024小神,一个只会Python的程序猿不是一个好司机
  • 有什么想对我说的可以在留言板里给我留言哦~
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏1024小神吧

Kube Forwarder工具映射K8s/svc/pod端口至本机

Mac\Ios 1024小神 3个月前 (09-18) 148次浏览 1个评论

痛点描述

1、在访问openshift的应用时,我们一般通过域名的方式进行访问,域名再解析IP至router节点或router的F5节点,解析的方式要么通过本机的DNS server解析,要么通过本机自己配置的hosts解析。
2、当一个开发在本地调试代码时,需要一个mysql环境,在以前要么在本机搭建一个mysql,要么虚拟机部署一个mysql,太慢了,我们可以直接在openshift上部署一个,多方便;当访问类似像mysql这样tcp访问方式的应用是,openshift的router是不支持的(haproxy是可以配置mode从http调整为tcp,但是openshift我还没找到可以配置的地方),那本机就没法访问到mysql了。

解决方案

接下来介绍下解决上诉问题的工具:Kube Forwarder

a

它能够解决啥问题呢?

举个例子,我用openshift的registry-console来说明,正常情况下,我访问registry-console域名是这样的

b

那我用Kube Forwarder来访问,使用本机地址127.0.0.1

c

特点如下

使用方法

去官网下载:https://kube-forwarder.pixelpoint.io/
有很多种版本,window,Linux,macOS提供下载。安装后开始演示,我的是macOS,以我的为例。

  • 会提示你添加OCP集群:
    image.png
  • 会读取本机之前登陆过的OCP信息,可以直接用,不过我选择手动添加
    image.png
  • 这里需要你输入 .kube/config文件的内容,你可以去之前登陆过的节点获取,或者直接去master节点copy出来。

 

[root@master01 ~]# cat .kube/config
image.png
  • .kube/config其实包含了很多用户的登陆信息,并且还包含了每个用户多次登陆的信息,不过因为openshift的对用户的token是有超时时间的,可能就不能用,所以在选择某个用户前需要先用oc命令登录下openshift,我用之前admin的登录token就没法登录上。我选择用系统默认的system:admin去登录,这个token是不会超时失效的。
    image.png
  • 接下来添加资源,也就是openshift的应用了。
    image.png
  • 选择该openshift集群对应的项目
    image.png
  • 选择该项目的对应资源类型,pod、svc、deployment,有时候需要具体调试某个pod的时候就需要选择pod了。非常有用。
    image.png
  • 选择具体应用
    image.png
  • 指定端口,比如registry-console的svc端口为9000,我映射成本地的9000端口
    image.png
  • 配置好后,默认是没有运行的,点击右边的运行
    image.png
  • 看到已经正在运行了
    image.png
  • 访问127.0.0.1:9000端口就可以访问到registry-console了
    Kube Forwarder工具映射K8s/svc/pod端口至本机
    image.png
  • 需要注意的是registry-console是走了openshift的oauth认证的,需要配置下oauthclient,添加下新的域名:127.0.0.1:9000,要不然访问会被拒绝。

 

[root@master01 ~]# oc get oauthclient
NAME                           SECRET                                                                 WWW-CHALLENGE   TOKEN-MAX-AGE   REDIRECT URIS
cockpit-oauth-client           user6Th43Kdpow3DyN4duWUlWSWskrx7V3D1K4UYmgSX003xaUI5E5iMAXKLgdlxup7n   FALSE           default         https://registry-console-default.ocp311.com
openshift-browser-client       1c69_efAfTo84CMvgqqsKt45XaWuqD2diG3LygJwfvg                            FALSE           default         https://cluster.ocp311.com:8443/oauth/token/display
openshift-challenging-client                                                                          TRUE            default         https://cluster.ocp311.com:8443/oauth/token/implicit
openshift-console              1TY6T42vxacyFDnFSa6HS7pFUhya1AdW                                       FALSE           default         https://console.ocp311.com/
openshift-web-console                                                                                 FALSE           default         https://cluster.ocp311.com:8443/console/

 

[root@master01 ~]# oc edit oauthclient cockpit-oauth-client
oauthclient.oauth.openshift.io/cockpit-oauth-client edited

 

# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: oauth.openshift.io/v1
kind: OAuthClient
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"oauth.openshift.io/v1","kind":"OAuthClient","metadata":{"annotations":{},"labels":{"createdBy":"registry-console-template"},"name":"cockpit-oauth-client","namespace":"","respondWithChallenges":false},"redirectURIs":["https://registry-console-default.ocp311.com"],"secret":"user6Th43Kdpow3DyN4duWUlWSWskrx7V3D1K4UYmgSX003xaUI5E5iMAXKLgdlxup7n"}
  creationTimestamp: 2019-03-28T15:14:18Z
  labels:
    createdBy: registry-console-template
  name: cockpit-oauth-client
  resourceVersion: "20941760"
  selfLink: /apis/oauth.openshift.io/v1/oauthclients/cockpit-oauth-client
  uid: 2836c416-516c-11e9-a9dd-005056860b09
redirectURIs:
- https://registry-console-default.ocp311.com
- http://127.0.0.1:9000
secret: user6Th43Kdpow3DyN4duWUlWSWskrx7V3D1K4UYmgSX003xaUI5E5iMAXKLgdlxup7n

其他类似的工具

  • kubefwd
    这个工具和Kube Forwarder类似,不过没有图形化,并且只能映射到svc,不能映射到pod和deployment。没有图形化管理功能,功能不够多。

    image.png

    https://github.com/txn2/kubefwd?utm_sq=g3bb5g3o1j

  • 另外一个就是openshift自带的oc port-forward 命令,同样的没有图形化管理功能,功能不够多。

如有失效,请留言告知丨转载请注明原文链接:Kube Forwarder工具映射K8s/svc/pod端口至本机
点赞 (3)

您必须 登录 才能发表评论!

(1)个小伙伴在吐槽
  1. lzgwxt
    看不太懂
    2021-10-31 16:57