|
sudo yum install fuse htop tree -y |
|
|
|
curl --fail --location "https://github.com/containerd/nerdctl/releases/download/v1.7.2/nerdctl-1.7.2-linux-amd64.tar.gz" | sudo tar -C /usr/local/bin -zxf - |
|
#curl --fail --location "https://github.com/awslabs/soci-snapshotter/releases/download/v0.4.1/soci-snapshotter-0.4.1-linux-amd64.tar.gz" | sudo tar -C /usr/local/bin -zxf - |
|
sudo yum install golang zlib-devel zlib-static -y |
|
git clone https://github.com/awslabs/soci-snapshotter /tmp/soci-snapshotter >/dev/null 2>&1 |
|
|
|
pushd /tmp/soci-snapshotter/ |
|
make soci-snapshotter-grpc soci |
|
sudo cp out/soci /usr/local/bin/soci |
|
sudo cp out/soci-snapshotter-grpc /usr/local/bin/soci-snapshotter-grpc |
|
sudo /usr/local/bin/soci-snapshotter-grpc --version |
|
popd |
|
|
|
sudo chown root:root /usr/local/bin/soci* |
|
sudo curl -s -o /etc/soci-snapshotter-grpc/config.toml https://gist.githubusercontent.com/dims/829e3890282602202e116694ff626de8/raw/70191e9ed0249170d5f3c85514f668c75557552a/soci-config.toml |
|
sudo curl -s -o /usr/lib/systemd/system/soci-snapshotter.service https://gist.githubusercontent.com/dims/829e3890282602202e116694ff626de8/raw/33471d035cbbdd7b04ad7050db129beee2d1f4f9/soci-snapshotter.service |
|
sudo systemctl enable --now soci-snapshotter |
|
sudo yum install -y amazon-ecr-credential-helper |
|
sudo mkdir -p /root/.docker/ && sudo curl -s -o /root/.docker/config.json https://gist.githubusercontent.com/dims/829e3890282602202e116694ff626de8/raw/70191e9ed0249170d5f3c85514f668c75557552a/config.json |
|
curl -s -o /tmp/append-to-containerd-config.toml https://gist.githubusercontent.com/dims/829e3890282602202e116694ff626de8/raw/909dd1ab5d973507104190342718927deabaf8d6/append-to-containerd-config.toml |
|
sudo sed -i '/discard_unpacked_layers = true/a disable_snapshot_annotations = false' /etc/containerd/config.toml |
|
cat /tmp/append-to-containerd-config.toml | sudo tee -a /etc/containerd/config.toml |
|
#sudo sed -i s#registry.k8s.io/pause:3.8#086752300739.dkr.ecr.us-east-1.amazonaws.com/pause:3.8#g /etc/containerd/config.toml |
|
|
|
sudo systemctl stop kubelet containerd soci-snapshotter |
|
sudo systemctl daemon-reload |
|
ps -ef | grep shim | grep -v grep | awk '{print $2}' | xargs sudo kill -9 |
|
sudo rm -rf /var/lib/containerd |
|
sudo find /var/lib/soci-snapshotter-grpc/snapshotter/snapshots/ -name fs -exec sudo umount {} \; |
|
sudo rm -rf /var/lib/soci-snapshotter-grpc |
|
|
|
sudo systemctl start containerd soci-snapshotter |
|
sudo chmod 777 /run/containerd/containerd.sock |
|
|
|
find /kubernetes/server/bin -name "*.tar" -print | xargs -L 1 sudo ctr -n k8s.io images import |
|
sudo ctr -n k8s.io images ls -q | grep -e amd64 | xargs -L 1 -I '{}' /bin/bash -c 'sudo ctr -n k8s.io images tag "{}" "$(echo "{}" | sed s/-'amd64':/:/)"' |
|
|
|
sudo nerdctl --namespace k8s.io pull --snapshotter soci 086752300739.dkr.ecr.us-east-1.amazonaws.com/rabbitmq:latest |
|
sudo nerdctl --namespace k8s.io pull --snapshotter soci 086752300739.dkr.ecr.us-east-1.amazonaws.com/nginx:latest |
|
sudo nerdctl --namespace k8s.io pull --snapshotter soci 086752300739.dkr.ecr.us-east-1.amazonaws.com/pause:3.8 |
|
|
|
sudo systemctl start kubelet |
|
|
|
sudo journalctl -xeu containerd -f |
|
sudo journalctl -xeu soci-snapshotter -f |
|
|
|
kubectl apply -f https://gist.githubusercontent.com/dims/829e3890282602202e116694ff626de8/raw/4fd952b7b50b0979296e1eb73bd9165b04f63795/soci-runtime.yaml |
|
|
|
kubectl create -f https://gist.githubusercontent.com/dims/829e3890282602202e116694ff626de8/raw/4fd952b7b50b0979296e1eb73bd9165b04f63795/soci-pod.yaml |
|
|
|
kubectl delete -f https://gist.githubusercontent.com/dims/829e3890282602202e116694ff626de8/raw/4fd952b7b50b0979296e1eb73bd9165b04f63795/soci-pod.yaml |
|
|
|
sudo nerdctl --namespace k8s.io pull --snapshotter soci 086752300739.dkr.ecr.us-east-1.amazonaws.com/nginx:latest |
|
sudo nerdctl --namespace k8s.io run -it --rm --snapshotter=soci 086752300739.dkr.ecr.us-east-1.amazonaws.com/nginx:latest |
|
|
|
REGISTRY=086752300739.dkr.ecr.us-east-1.amazonaws.com |
|
sudo nerdctl pull --snapshotter soci $REGISTRY/nginx:latest |
|
sudo nerdctl run -it --rm --snapshotter=soci $REGISTRY/nginx:latest |
|
|
|
sudo nerdctl run -it --rm --snapshotter=soci public.ecr.aws/soci-workshop-examples/rabbitmq:latest |
|
|
|
|
|
sudo nerdctl pull docker.io/library/rabbitmq:latest |
|
sudo nerdctl image tag docker.io/library/rabbitmq:latest $REGISTRY/rabbitmq:latest |
|
sudo nerdctl push --platform linux/amd64 --snapshotter soci $REGISTRY/rabbitmq:latest |
|
|
|
sudo nerdctl pull registry.k8s.io/pause:3.8 |
|
sudo nerdctl image tag registry.k8s.io/pause:3.8 $REGISTRY/pause:3.8 |
|
sudo nerdctl push --platform linux/amd64 --snapshotter soci $REGISTRY/pause:3.8 |
|
|
|
sudo nerdctl pull docker.io/library/nginx:latest |
|
sudo nerdctl image tag docker.io/library/nginx:latest $REGISTRY/nginx:latest |
|
sudo nerdctl push --platform linux/amd64 --snapshotter soci $REGISTRY/nginx:latest |
|
|
|
# Install nerdctl |
|
curl --fail --location https://github.com/containerd/nerdctl/releases/download/v1.7.2/nerdctl-1.7.2-linux-amd64.tar.gz | sudo tar -C /usr/local/bin -zxf - |
|
|
|
# Log into ECR repo |
|
aws ecr get-login-password --region us-east-1 | sudo nerdctl login --username AWS --password-stdin 086752300739.dkr.ecr.us-east-1.amazonaws.com |
|
|
|
# Fetch the nginx image |
|
sudo nerdctl pull nginx:latest --all-platforms |
|
|
|
# Tag the nginx image so we can push to ECR repo |
|
sudo nerdctl tag nginx:latest 086752300739.dkr.ecr.us-east-1.amazonaws.com/nginx:latest |
|
|
|
# Create the SOCI index |
|
sudo soci create 086752300739.dkr.ecr.us-east-1.amazonaws.com/nginx:latest |
|
|
|
# Push all the things! |
|
sudo nerdctl push --all-platforms --snapshotter soci 086752300739.dkr.ecr.us-east-1.amazonaws.com/nginx:latest |
|
|
|
# Test |
|
sudo nerdctl --namespace k8s.io run -it --rm --snapshotter=soci 086752300739.dkr.ecr.us-east-1.amazonaws.com/nginx:latest |
|
|
|
|
|
sudo nerdctl --namespace k8s.io run -it --rm --snapshotter=soci public.ecr.aws/soci-workshop-examples/rabbitmq:latest |
|
|