-
Notifications
You must be signed in to change notification settings - Fork 224
Krustlet-tutorial pod get stuck in init:regitered status #624
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
We do not currently support Pods with both traditional containers and WASM workloads at the same time. I don't think it will be possible to run Krustlet Pods within an Istio mesh for now. |
@kflansburg Thanks. I put the pod that only has the wasm workload into a new namespace that doesn't have the |
I believe that Krustlet uses the client in the OCI Registry crate (https://github.com/deislabs/krustlet/tree/main/crates/oci-distribution) to pull wasm images. What is the Pod manifest that you are trying to run? Does Krustlet emit any logs about why the image pull failed? |
There is the krustlet's log:
192.168.0.211:8088 is my harbor's location. I think it's because I used HTTP connection to harbor and didn't open HTTPS.Does it have to use HTTPS to connection to the registry?Or maybe add some parameters to use HTTP rather than HTTPS? |
A couple of things to unpack here.
There is a common misconception that because Krustlet stores WebAssembly modules in OCI means that you can use
Yes. This is enforced by the OCI distribution specification. All connections must be through HTTPS unless that registry is marked as "insecure", or is listening on the local loopback address (127.0.0.1). |
Thanks for your prompt reply! Too fast to get the answer. I understand a lot now😁, I will close the issue after solving it. |
How to mark the registry as “insecure” if I have to use HTTP? It's a little bit troublesome for my condition to build a HTTPS registry like Harbor. So if I can't use HTTP I have to use registry services like Azure or Google container registry, but I can't use Azure or Google lack of credit card😅. Github package registry will be my last choice. |
An image reference is broken down to its URL counterparts here. krustlet-wasi provides a feature flag in its configuration to pass insecure registries to the oci-distribution client. |
Then I added the flag "--insecure-registries" to krustlet-wasi, but the log still reported some errors:
Why does it cause duplicate field token? |
If I used HTTPS harbor, I got unable to get local issuer certificate error:
Where should I put harbor's crt,key and ca.crt on the krustlet node then krustlet can prove that the registry is save, just like docker's path |
doesn't look like it is hooked up anywhere. Feel like working on a contribution? :) |
Alternatively, you can have a look through https://docs.rs/reqwest/0.11.3/reqwest/#tls. It looks like the system default chain certificate could be used as a workaround. |
I'm a little confused..Only self-built container-registries like Harbor will cause this problem? Did someone meet the same problem before: |
Anyway, how to solve this HTTP error? I still want to create a pod successfully first, I even still got stuck in the introduction part😞 |
I got the same error and got stuck in the introduction too. When I run
The nodes status:
And the pod "kindnet-xxx" is always registered,run "kubectl describe pod xxx -n xxx",it show:
And run "kubectl logs xxx", it shows:
|
Same error and pod is krustlet-wasi[20706]: [2021-07-08T08:31:46Z DEBUG hyper::proto::h1::conn] incoming body is content-length (950 bytes)
krustlet-wasi[20706]: [2021-07-08T08:31:46Z DEBUG hyper::proto::h1::conn] incoming body completed
krustlet-wasi[20706]: [2021-07-08T08:31:46Z DEBUG hyper::client::pool] pooling idle connection for ("https", harbor....)
krustlet-wasi[20706]: [2021-07-08T08:31:46Z DEBUG reqwest::async_impl::client] response '200 OK' for https://harbor..../service/token?scope=repository%3Abifrost%2Fhello-wasm%3Apull&service=harbor-registry
krustlet-wasi[20706]: [2021-07-08T08:31:46Z DEBUG oci_distribution::client] Received response from auth request: {"token":"...","access_token":"","expires_in":1800,"issued_at":"2021-07-08T08:31:46Z"}
krustlet-wasi[20706]: [2021-07-08T08:31:46Z ERROR kubelet::state::common::image_pull] Failed to decode registry token from auth request
krustlet-wasi[20706]:
krustlet-wasi[20706]: Caused by:
krustlet-wasi[20706]: duplicate field `token` at line 1 column 1129
krustlet-wasi[20706]: [2021-07-08T08:31:46Z DEBUG krator::state] State::status
krustlet-wasi[20706]: [2021-07-08T08:31:46Z DEBUG krator::state] Applying status patch to object. name=wasm-hello patch={"metadata":{"resourceVersion":""},"status":{"phase":"Pending","message":"ImagePullBackoff","reason":"ImagePullBackoff"}} |
Im also facing the same error, pod is 'Registered'
Krustlet's node logs
Running from KinD on M1 Mac by following Krustlet's howto |
I was using KinD's registry to store my wasm module. I switched to the latest tag, built from source and by passing --insecure-registries localhost:5000 flag to Krustlet-wasi I was successfully able to see it working. |
AWS ECR (public.ecr.aws), Red Hat (registry.redhat.io), and likely other registries do not provide the `Docker-Content-Digest` header. As discussed in krustlet#624, this header is not required by the OCI [Spec](https://github.com/opencontainers/distribution-spec/blob/main/spec.md#pull).
AWS ECR (public.ecr.aws), Red Hat (registry.redhat.io), and likely other registries do not provide the `Docker-Content-Digest` header. As discussed in krustlet#624, this header is not required by the OCI [Spec](https://github.com/opencontainers/distribution-spec/blob/main/spec.md#pull). Signed-off-by: Colin Murphy <colmurph@adobe.com>
Hi guys is there support for image pulling from ghcr.io ? iam facing the same error "ImagePullBackOff" |
Hi, I followed https://github.com/deislabs/krustlet/blob/main/docs/intro/tutorial03.md to create a pod on krustlet node, the pod successfully scheduled to the krustlet node, but the pod get stuck in init:registered and I don't know why. I think it's because I build istio in cluster.The init containers
istio-init
firstly got stuck in waiting status. Istio's version is v1.10.0. Is that krustlet's problem or istio's problem? How to solve this?Another question by the way: Does krustlet use wasm-to-oci pull to pull a wasm module from registry or still use docker pull to pull from a registry?
The text was updated successfully, but these errors were encountered: