k3d icon indicating copy to clipboard operation
k3d copied to clipboard

[BUG] Issue port-forwarding into cluster from macOS

Open haf opened this issue 2 years ago • 1 comments

What did you do

  • How was the cluster created?

    k3d cluster create --config .tools/k3d-cluster.yaml

# https://k3d.io/v5.4.7/usage/configfile/
apiVersion: k3d.io/v1alpha5
kind: Simple
metadata:
  name: simple

ports:
- port: 80:80
  nodeFilters:
  - loadbalancer
- port: 443:443
  nodeFilters:
  - loadbalancer

# pg
# https://github.com/k3d-io/k3d/issues/312#issuecomment-899484483
# https://k3d.io/v5.0.1/usage/exposing_services/#2-via-nodeport
- port: 30007:30007

servers: 1
agents: 3

kubeAPI:
  host: "api.simple.test" # important for the `server` setting in the kubeconfig
  hostIP: "127.0.0.1" # where the Kubernetes API will be listening on
  hostPort: "6443"

options:
  k3s: # options passed on to K3s itself
    extraArgs: # additional arguments passed to the `k3s server|agent` command; same as `--k3s-arg`
    - arg: --disable=traefik
      nodeFilters:
      - server:*

# https://k3d.io/v5.4.7/usage/registries/
registries:
  create:
    name: docker-io # name of the registry container
    proxy:
      remoteURL: https://registry-1.docker.io # proxy DockerHub
    volumes:
    - ${HOME}/dev/docker-io-registry:/var/lib/registry # persist data locally in ~/dev/docker-io-registry
  config: | # tell K3s to use this registry when pulling from DockerHub
    mirrors:
      "docker.io":
        endpoint:
        - http://docker-io:5000
  • What did you do afterwards?
    • k3d commands?
    • docker commands?
    • OS operations (e.g. shutdown/reboot)?

Installed Istio, cert-manager and CrunchyData operator and 10 other services.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
  name: control
  namespace: istio-system

spec:
  profile: default
  namespace: istio-system
  tag: 1.18.2

Now I'm trying to do a port-forward:

$ kubectl --context k3d-causiq -n db port-forward $(kubectl --context k3d-causiq -n db get pod --selector postgres-operator.crunchydata.com/cluster=analytics,postgres-operator.crunchydata.com/data=postgres,postgres-operator.crunchydata.com/role=master -o jsonpath='{.items[0].metadata.name}') 30007:5432
Forwarding from 127.0.0.1:30007 -> 5432
Forwarding from [::1]:30007 -> 5432

then I make a connection via pgAdmin:

Handling connection for 30007
Handling connection for 30007
Handling connection for 30007
E0807 15:22:23.609816    9279 portforward.go:409] an error occurred forwarding 30007 -> 5432: error forwarding port 5432 to pod 3b197014edd6b63ae652182572b1072de5ba22c5bb80c8ea6febbbeb8b1530dd, uid : failed to execute portforward in network namespace "/var/run/netns/cni-4bddec3e-f2ca-0251-bf46-b4e559c1e259": read tcp4 127.0.0.1:46466->127.0.0.1:5432: read: connection reset by peer
error: lost connection to pod

The connection is cut immediately. Services inside the cluster that talks with the database work fine.

What did you expect to happen

Not to terminate the socket.

Which OS & Architecture

  • output of k3d runtime-info
arch: aarch64
cgroupdriver: cgroupfs
cgroupversion: "2"
endpoint: /var/run/docker.sock
filesystem: extfs
infoname: docker-desktop
name: docker
os: Docker Desktop
ostype: linux
version: 24.0.2

Which version of k3d

  • output of k3d version
k3d version v5.5.2
k3s version v1.27.4-k3s1 (default)

Which version of docker

  • output of docker version and docker info
Client:
 Cloud integration: v1.0.35
 Version:           24.0.2
 API version:       1.43
 Go version:        go1.20.4
 Git commit:        cb74dfc
 Built:             Thu May 25 21:51:16 2023
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.21.1 (114176)
 Engine:
  Version:          24.0.2
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.4
  Git commit:       659604f
  Built:            Thu May 25 21:50:59 2023
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.21
  GitCommit:        3dce8eb055cbb6872793272b4f20ed16117344f8
 runc:
  Version:          1.1.7
  GitCommit:        v1.1.7-0-g860f061
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Client:
 Version:    24.0.2
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.11.0
    Path:     /Users/h/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  v2.19.1
    Path:     /Users/h/.docker/cli-plugins/docker-compose
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.0
    Path:     /Users/h/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.20
    Path:     /Users/h/.docker/cli-plugins/docker-extension
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v0.1.0-beta.6
    Path:     /Users/h/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/h/.docker/cli-plugins/docker-sbom
  scan: Docker Scan (Docker Inc.)
    Version:  v0.26.0
    Path:     /Users/h/.docker/cli-plugins/docker-scan
  scout: Command line tool for Docker Scout (Docker Inc.)
    Version:  0.16.1
    Path:     /Users/h/.docker/cli-plugins/docker-scout

Server:
 Containers: 8
  Running: 8
  Paused: 0
  Stopped: 0
 Images: 10
 Server Version: 24.0.2
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 3dce8eb055cbb6872793272b4f20ed16117344f8
 runc version: v1.1.7-0-g860f061
 init version: de40ad0
 Security Options:
  seccomp
   Profile: builtin
  cgroupns
 Kernel Version: 5.15.49-linuxkit-pr
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 5
 Total Memory: 15.61GiB
 Name: docker-desktop
 ID: 71192638-cb89-4c94-9709-17b0534d2fe2
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false


haf avatar Aug 07 '23 13:08 haf

Hi @haf , thanks for opening this issue! Did you test this without istio already? Is the istio-cni-plugin enabled?

iwilltry42 avatar Aug 08 '23 13:08 iwilltry42