KIND runs Kubernetes cluster in Docker, and leverages Docker networking for all the network features: port mapping, IPv6, containers connectivity, etc.
KIND uses a docker user defined network.
It creates a bridge named kind
| package main | |
| import ( | |
| "bytes" | |
| admissionregistrationv1 "k8s.io/api/admissionregistration/v1" | |
| metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | |
| "k8s.io/client-go/kubernetes" | |
| "os" | |
| ctrl "sigs.k8s.io/controller-runtime" | |
| ) |
KIND runs Kubernetes cluster in Docker, and leverages Docker networking for all the network features: port mapping, IPv6, containers connectivity, etc.
KIND uses a docker user defined network.
It creates a bridge named kind
cat <<EOF | kind create cluster --config=-
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
| # By default, Docker containers run as the root user. This is bad because: | |
| # 1) You're more likely to modify up settings that you shouldn't be | |
| # 2) If an attacker gets access to your container - well, that's bad if they're root. | |
| # Here's how you can run change a Docker container to run as a non-root user | |
| ## CREATE APP USER ## | |
| # Create the home directory for the new app user. | |
| RUN mkdir -p /home/app |
| # Kustomize based apply workflow. Requires jq, yq, kubectl, kustomize, mustache. | |
| # | |
| # Expected variables | |
| # - namespace Namespace for all resources. | |
| # - release A unique name to give to this collection of manifests. | |
| # - revision Release revision. | |
| # - images Image replacements. | |
| # - variables Variable replacements. | |
| # | |
| # Example inputs: |
Just run this from your Mac terminal and it'll drop you in a container with full permissions on the Moby VM. This also works for Docker for Windows for getting in Moby Linux VM (doesn't work for Windows Containers).
docker run -it --rm --privileged --pid=host justincormack/nsenter1
more info: https://github.com/justincormack/nsenter1
| stages: | |
| - build | |
| - release | |
| build_image: | |
| only: | |
| - master | |
| image: registry.gitlab.com/majorhayden/container-buildah | |
| stage: build | |
| variables: |
| brew list | xargs -n1 -P8 -I {} \ | |
| sh -c "brew info {} | egrep '[0-9]* files, ' | sed 's/^.*[0-9]* files, \(.*\)).*$/{} \1/'" | \ | |
| sort -h -r -k2 - | column -t |
brew cask install podman$ export PATH=$(pwd):$PATH
$ podman-machine create box
Podman machine "box" already exists
$ podman-machine start box
Starting "box"...