Docker and K8s

阅读约需 2 分钟

这篇文章将记录如何从零开始安装一整套 Docker 和 K8s。网上的资料大多很杂,故自己整理一份,供自己和大家参考。

Prerequisition

$ sudo apt update
$ sudo apt install -y curl net-tools

Install Docker

Official docs: Ubuntu Debian CentOS Fedora

$ curl -fsSL https://get.docker.com | sudo bash
  1. Set up Docker’s apt repository.
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  1. Install the Docker packages.
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Make docker rootless

Reference: RootlessContainer Minikube Driver

sudo apt install -y uidmap
dockerd-rootless-setuptool.sh install
docker context use rootless

Install minikube

Reference: Official doc

Installation

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube

CPU delegate

$ sudo mkdir -p /etc/systemd/system/user@.service.d
$ cat <<EOF | sudo tee /etc/systemd/system/user@.service.d/delegate.conf
[Service]
Delegate=cpu cpuset io memory pids
EOF
$ sudo systemctl daemon-reload

Start your cluster

$ minikube start --driver=docker --container-runtime=containerd

Caveats: the command is minikube not minicube,though the pronunciations are the same. If you type minicube, bash won’t find anything in the PATH.

Install kubectl

Offcial doc

$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl