linuxserver / docker-kasm

Kasm Workspaces platform provides enterprise-class orchestration, data loss prevention, and web streaming technology to enable the delivery of containerized workloads to your browser.
GNU General Public License v3.0
315 stars 28 forks source link

support mtu change #32

Closed james-martinez closed 1 year ago

james-martinez commented 1 year ago

linuxserver.io



Description:

This PR supports Kasm deployed into Kubernetes and other virtualized networking that requires a mtu change from the dockerd default of 1500

Benefits of this PR and context:

When Kasm deploys "workspaces" dind is used. Downloads hang and timeout and its because of the "overlayed" mtu set in the primary networking interface. eth0 (1500) -> cni0 (eg. 1450) -> docker0(1500)

How Has This Been Tested?

Used images built in CI and verified options are passed and configured correctly. docker inspect network bridge[hash] and docker exec "dev container hash" ps aux

Source / References:

https://blog.zespre.com/dind-mtu-size-matters.html https://bascht.com/tech/2021/04/08/kubernetes-docker-dind-mtu-issues-on-hetzner-cloud/

LinuxServer-CI commented 1 year ago
I am a bot, here are the test results for this PR: https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-d5080cd13eb9cae27552f3fb7d9bc97c32940a33-pr-32/index.html https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-d5080cd13eb9cae27552f3fb7d9bc97c32940a33-pr-32/shellcheck-result.xml Tag Passed
amd64-1.13.0-pkg-ea5c3bae-dev-d5080cd13eb9cae27552f3fb7d9bc97c32940a33-pr-32
arm64v8-1.13.0-pkg-ea5c3bae-dev-d5080cd13eb9cae27552f3fb7d9bc97c32940a33-pr-32
LinuxServer-CI commented 1 year ago
I am a bot, here are the test results for this PR: https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-edd90db089d071c76f8b9016064b84ac1bb4a2f1-pr-32/index.html https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-edd90db089d071c76f8b9016064b84ac1bb4a2f1-pr-32/shellcheck-result.xml Tag Passed
amd64-1.13.0-pkg-ea5c3bae-dev-edd90db089d071c76f8b9016064b84ac1bb4a2f1-pr-32
arm64v8-1.13.0-pkg-ea5c3bae-dev-edd90db089d071c76f8b9016064b84ac1bb4a2f1-pr-32
LinuxServer-CI commented 1 year ago
I am a bot, here are the test results for this PR: https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-15e999a826a769862bdc04fea01712ec0ba2ea3d-pr-32/index.html https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-15e999a826a769862bdc04fea01712ec0ba2ea3d-pr-32/shellcheck-result.xml Tag Passed
amd64-1.13.0-pkg-ea5c3bae-dev-15e999a826a769862bdc04fea01712ec0ba2ea3d-pr-32
arm64v8-1.13.0-pkg-ea5c3bae-dev-15e999a826a769862bdc04fea01712ec0ba2ea3d-pr-32
LinuxServer-CI commented 1 year ago
I am a bot, here are the test results for this PR: https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-4ed010be43d57674dd1094c9138c3ccff638ed3a-pr-32/index.html https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-4ed010be43d57674dd1094c9138c3ccff638ed3a-pr-32/shellcheck-result.xml Tag Passed
amd64-1.13.0-pkg-ea5c3bae-dev-4ed010be43d57674dd1094c9138c3ccff638ed3a-pr-32
arm64v8-1.13.0-pkg-ea5c3bae-dev-4ed010be43d57674dd1094c9138c3ccff638ed3a-pr-32
LinuxServer-CI commented 1 year ago
I am a bot, here are the test results for this PR: https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-98d933d3fb98549414612800cb2a04939c826379-pr-32/index.html https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-98d933d3fb98549414612800cb2a04939c826379-pr-32/shellcheck-result.xml Tag Passed
amd64-1.13.0-pkg-ea5c3bae-dev-98d933d3fb98549414612800cb2a04939c826379-pr-32
arm64v8-1.13.0-pkg-ea5c3bae-dev-98d933d3fb98549414612800cb2a04939c826379-pr-32
LinuxServer-CI commented 1 year ago
I am a bot, here are the test results for this PR: https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-c92287948e065bb16ae07a521abb84b8d6b58163-pr-32/index.html https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-ea5c3bae-dev-c92287948e065bb16ae07a521abb84b8d6b58163-pr-32/shellcheck-result.xml Tag Passed
amd64-1.13.0-pkg-ea5c3bae-dev-c92287948e065bb16ae07a521abb84b8d6b58163-pr-32
arm64v8-1.13.0-pkg-ea5c3bae-dev-c92287948e065bb16ae07a521abb84b8d6b58163-pr-32
james-martinez commented 1 year ago

Need to find where config of kasm network bridge kasm_default_network.

NETWORK ID     NAME                   DRIVER    SCOPE
353f7187f6d1   bridge                 bridge    local
3564103f2412   host                   host      local
8d3cb6e06eed   kasm_default_network   bridge    local
5ad5d5c85024   none                   null      local

bridge, bridge mtu options are set. docker network inspect 353

        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1300"
        }

kasm options are blank docker network inspect 8d3

"Options": {}

Docker compose yaml file found: /opt/kasm/1.13.0/docker/docker-compose.yaml

networks:
  kasm_default_network:
    external: true

Looks to be a feature request and should configure mtu on own network via compose or daemon.json https://docs.docker.com/engine/reference/commandline/network_create/#bridge-driver-options https://docs.docker.com/compose/networking/#use-a-pre-existing-network

james-martinez commented 1 year ago

Fixed issue of kasm_default_network. Now workspaces download content without issues. in install.sh of kasm line 620 docker network create --driver=bridge -o com.docker.network.driver.mtu=1300 kasm_default_network

Asking for advice of sending this issue (kasm_default_network) upstream with kasm or just fixing here.

james-martinez commented 1 year ago

Kasm is able to choose which network to use, until upstream is fixed, the bridge network must be used.

Screenshot 2023-05-29 at 11 50 00 PM
james-martinez commented 1 year ago

Please review and merge for added feature

LinuxServer-CI commented 1 year ago
I am a bot, here are the test results for this PR: https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-189a1a38-dev-1c55fb99c5c1e8d4b0e9d3313bddc9c1f54257ac-pr-32/index.html https://ci-tests.linuxserver.io/lspipepr/kasm/1.13.0-pkg-189a1a38-dev-1c55fb99c5c1e8d4b0e9d3313bddc9c1f54257ac-pr-32/shellcheck-result.xml Tag Passed
amd64-1.13.0-pkg-189a1a38-dev-1c55fb99c5c1e8d4b0e9d3313bddc9c1f54257ac-pr-32
arm64v8-1.13.0-pkg-189a1a38-dev-1c55fb99c5c1e8d4b0e9d3313bddc9c1f54257ac-pr-32