Git Product home page Git Product logo

Comments (3)

ComradeProgrammer avatar ComradeProgrammer commented on September 7, 2024

@medyagh @spowelljr
I guess the reason is like this:
at pkg/drivers/kic/kic.go:180, oci.PrepareContainerNode was called, before the extraction of preload tarball (which happens at pkg/drivers/kic/kic.go:187, 7 lines after oci.PrepareContainerNode was called)

Under this circumstance:

  1. oci.PrepareContainerNode will try to run prepareVolumeSideCar, which will start a kicbase container.
  2. But at this time the preload has not been extracted, so docker will try to pull image via gcr.io or dockerhub
  3. In China mainland, pulling kicbase via gcr.io or dockerhub will fail due to GFW, so the start process fails

Does this make sense?

BTW I think I was wrong about the reason why preload was not used in China mainland. It seems that it was not proxy. And this seems to be the actual reason why preload never works in China mainland

from minikube.

spowelljr avatar spowelljr commented on September 7, 2024

@ComradeProgrammer I don't think this is the issue. oci.PrepareContainerNode creates the minikube and minikube-preload-sidecar. Once that's done it extracts the preloads to the volume created in oci.PrepareContainerNode.

oci.PrepareContainerNode:

docker volume create minikube --label name.minikube.sigs.k8s.io=minikube --label created_by.minikube.sigs.k8s.io=true

docker run --rm --name minikube-preload-sidecar --label created_by.minikube.sigs.k8s.io=true --label name.minikube.sigs.k8s.io=minikube --entrypoint /usr/bin/test -v minikube:/var docker.io/kicbase/build:v0.0.44-1721064868-19249@sha256:f2789f25c9e51cdeb9cef760e15dc838ef08abd5bb1913311c1eabedda231e8c -d /var/lib

oci.ExtractTarballToVolume:

docker run --rm --entrypoint /usr/bin/tar -v /Users/powellsteven/.minikube/cache/preloaded-tarball/preloaded-images-k8s-v18-v1.30.2-docker-overlay2-arm64.tar.lz4:/preloaded.tar:ro -v minikube:/extractDir docker.io/kicbase/build:v0.0.44-1721064868-19249@sha256:f2789f25c9e51cdeb9cef760e15dc838ef08abd5bb1913311c1eabedda231e8c -I lz4 -xf /preloaded.tar -C /extractDir

I assume you're referencing the log docker run --rm --name minikube-preload-sidecar, that's called in oci.PrepareContainerNode, not oci.ExtractTarballToVolume. In the logs above the user never even hits oci.ExtractTarballToVolume because because creating the volume with the kicbase fails first.

from minikube.

ComradeProgrammer avatar ComradeProgrammer commented on September 7, 2024

So accoding to the discussion on Wednesday

  • it seems that the reason was indeed caused by failing to pull kicbase, and preload does not include the kicbase image.
  • one of the possible way to solve it:
    • to solve it is to provide a tarball of kicbase during the minikube release
    • allow minikube to download and verify the tarball to load the kicbase image from github
      if this is ok I am going to start having a try on this
      @medyagh @spowelljr

from minikube.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.