背景

  • kubernetes集群在内网中
  • 服务部署在kubernetes集群中
  • 允许暴露一个端口,可以远程访问

目的

  • 访问内网服务的mysql redis mongodb

方案一

部署一套archery,通过端口暴露到公网,实现远程访问

缺点:只能访问特定服务,archery比较厚重

方案二

内网部署一个pod,运行ssh客户端,预装常用工具,mysql-client,redis-cli等

tmp.yaml

apiVersion: v1
kind: Pod
metadata:
  name: my-svc
  labels:
    app.kubernetes.io/name: my-svc
spec:
  containers:
    - name: my-svc
      image: docker.io/linjinbao66/dev-server:1.0.0
---
kind: Service
apiVersion: v1
metadata:
  name: my-svc
  namespace: default
  labels:
    app: my-svc
spec:
  ports:
    - name: tcp-22
      protocol: TCP
      port: 22
      targetPort: 22
      nodePort: 30080
  selector:
    app.kubernetes.io/name: my-svc
  type: NodePort
  sessionAffinity: None
  externalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack

远程访问,ssh test@ip -p30080