Инсталляция и подготовка minikube для работы в ubuntu 20.04.1
Инсталляция minikube в ubuntu 20.04.1
minikube - подготовленная виртуальная машина или контейнер с мини kubernetes сервером. Вполне подойдет для изучения kubernetes, особенно на слабых компьютерах и ноутбуках.
Делаю:
28.09.2020
-- Последняя версия (v1.13.1):
$ curl -s https://api.github.com/repos/kubernetes/minikube/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/'
-- Установка
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
$ minikube version
minikube version: v1.16.0
commit: 9f1e482427589ff8451c4723b6ba53bb9742fbb1
Запуск и останов minikube
Делаю:
12.02.2021
Можно использовать VirtualBox или Docker. Для всех случаев, когда нужно работать не с каким-то выделенным сервером на виртуалке с minikube, стоит использовать docker.
Запуск по умолчанию для своих примеров:
$ {
minikube --profile my-profile config set memory 8192
minikube --profile my-profile config set cpus 4
minikube --profile my-profile config set disk-size 20g
// minikube --profile my-profile config set vm-driver virtualbox
minikube --profile my-profile config set vm-driver docker
minikube --profile my-profile config set kubernetes-version v1.20.2
minikube start --profile my-profile --embed-certs
}
// Удалить
// $ minikube --profile my-profile stop && minikube --profile my-profile delete
// Enable ingress
$ minikube addons --profile my-profile enable ingress
Добавляю “Metal LB”
Metal LB позволит получить внешний IP в миникубе на локалхосте. Аналогично тому, как это происходит в облаках, когда облачный сервис выделяет ip адрес, к котому можно будет подключиться извне.
$ LATEST_VERSION=$(curl --silent "https://api.github.com/repos/metallb/metallb/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
$ echo ${LATEST_VERSION}
$ kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/${LATEST_VERSION}/manifests/namespace.yaml
$ kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/${LATEST_VERSION}/manifests/metallb.yaml
# On first install only
$ kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
$ minikube --profile my-profile ip
192.168.49.2
Задаем диапазон ip адресов, которые можно выдать виртуальному сервису. Нужно, чтобы он был в той же подсети, что и ip minikube.
$ cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: custom-ip-space
protocol: layer2
addresses:
- 192.168.49.20-192.168.49.30
EOF
$ kubectl get pods --all-namespaces
Дополнительная инфа
$ minikube --profile my-profile config view
- cpus: 4
- kubernetes-version: v1.20.2
- memory: 8192
- vm-driver: docker
// Подключиться к minikube по ssh
$ minikube --profile my-profile ssh
Или еще вариант
$ minikube --profile my-profile ip
$ export MINIKUBE_IP=192.168.99.100
$ ssh -i ~/.minikube/machines/my-profile/id_rsa [email protected]${MINIKUBE_IP}
$ kubectl get events
$ kubectl get events --sort-by=.metadata.creationTimestamp
// Editor по умолчанию vscode
$ export KUBE_EDITOR="code -w"
$ minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.159:2376"
export DOCKER_CERT_PATH="/home/marley/.minikube/certs"
# Run this command to configure your shell:
# eval $(minikube docker-env)
// Расположение профайлов
~/.minikube/profiles
// outputs the current profile
$ minikube profile
// lists all existing profiles
$ minikube profile list
Дополнительно:
https://github.com/burrsutter/9stepsawesome/