Если вы хотите протестировать Kubernetes без каких-либо обязательств, самый простой и быстрый способ – использовать Docker контейнеры.
Этот метод не имеет много предпосылок и не требует больших ресурсов.
Любая приличная машина Linux, которая может запустить Docker, – это все, что требуется.
Для любителей Docker этот метод является еще одним вариантом, который вы можете изучить.
Настройка была выполнена на CentOS 7 и Ubuntu Server.
Но процесс должен быть аналогичным для других дистрибутивов Linux.
Шаг 1: Установите Docker
Начните с установки движка Docker, он будет использоваться для запуска всех сервисов Kubernetes.
Наши руководства ниже должны быть очень полезны.
- ? Docker Swarm для оркестрации контейнеров
- ? Что такое Dockerfile и как создать образ Docker?
- Как установить Docker и запустить Docker контейнеры в Ubuntu
Проверьте правильность установки докера, выполнив:
$ docker info
..............
Client:
Debug Mode: false
Server:
Containers: 0
Running: 0
Paused: 0
Stopped: 0
Images: 0
Server Version: 19.03.1
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
init version: fec3683
Security Options:
apparmor
seccomp
Profile: default
Kernel Version: 4.15.0-54-generic
Operating System: Ubuntu 18.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 7.604GiB
Name: k8s-server
ID: KRK3:OLPP:CCB2:CE5K:6PSD:D6JP:4Q6X:HL7H:46FN:YECO:CXL5:BQTX
Docker Root Dir: /var/lib/docker
Debug Mode: false
Registry: https://index.docker.io/v1/
Labels:
Experimental: false
Insecure Registries:
127.0.0.0/8
Live Restore Enabled: false
Шаг 2: Установите Go
Вам нужно установить Go (Golang), так как он будет использоваться для сборки необходимых пакетов.
Шаг 3: Установите kind
kind – это инструмент для запуска локальных кластеров Kubernetes с использованием «узлов» контейнера Docker.
kind в первую очередь предназначен для тестирования Kubernetes 1.11+, изначально предназначенного для тестов на соответствие.
$ GO111MODULE="on" go get sigs.k8s.io/kind
Скопируйте двоичный файл в каталог в вашем PATH.
sudo cp ~/go/bin/kind /usr/local/bin/
Проверьте версию:
$ kind version
v0.4.0
Шаг 4: Запустите локальные кластеры Kubernetes, используя «ноды» контейнера Docker.
Теперь мы выполнили все требования.
Мы должны быть готовы к созданию локального кластера Kubernetes, работающего на контейнерах Docker.
sudo kind create cluster
Вы должны получить вывод, как это:
kind create cluster | sudo tee -a kind_output.txt
Creating cluster "kind" ...
• Ensuring node image (kindest/node:v1.15.0) ? ...
✓ Ensuring node image (kindest/node:v1.15.0) ?
• Preparing nodes ? ...
✓ Preparing nodes ?
• Creating kubeadm config ? ...
✓ Creating kubeadm config ?
• Starting control-plane ?️ ...
✓ Starting control-plane ?️
• Installing CNI ? ...
✓ Installing CNI ?
• Installing StorageClass ? ...
✓ Installing StorageClass ?
Cluster creation complete. You can now use the cluster with:
export KUBECONFIG="$(kind get kubeconfig-path --name="kind")"
kubectl cluster-info
Вы можете просмотреть запущенный контейнер с помощью команды docker ps.
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d5bd9c025fe6 kindest/node:v1.15.0 "/usr/local/bin/entr…" 27 minutes ago Up 27 minutes 34213/tcp, 127.0.0.1:34213->6443/tcp
kind-control-plane
Шаг 5: Установите инструмент командной строки Kubectl
Чтобы получить доступ к кластеру Kubernetes из командной строки, вам нужен инструмент командной строки kubectl.
Его можно легко установить, выполнив команду:
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
Сделайте исполняемым файл kubectl
chmod +x ./kubectl
Переместите двоичный файл в ваш путь.
sudo mv ./kubectl /usr/local/bin/kubectl
Протестируйте, чтобы убедиться, что вы установили последнюю версию:
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.2", GitCommit:"f6278300bebbb750328ac16ee6dd3aa7d3549568", GitTreeState:"clean", B
Для других систем обратитесь к официальному руководству по установке kubectl.
Настроить автозаполнение:
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
Для пользователей zsh:
source <(kubectl completion zsh)
echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~/.zshrc
Шаг 6: Настройте kubectl
Создайте каталог конфигурации Kubectl:
mkdir ~/.kube
Создайте символическую ссылку конфигурации kubectl на созданный Kind конфигурационный файл.
ln -s `kind get kubeconfig-path --name="kind"` ~/.kube/config
Тестирование конфигурации kubectl.
$ kubectl cluster-info
Kubernetes master is running at https://127.0.0.1:34213
KubeDNS is running at https://127.0.0.1:34213/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
$ kubectl config get-clusters
NAME
kind
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* kubernetes-admin@kind kind kubernetes-admin
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
kind-control-plane Ready master 30m v1.15.0
$ kubectl get namespaces
NAME STATUS AGE
default Active 31m
kube-node-lease Active 31m
kube-public Active 31m
kube-system Active 31m
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-5c98db65d4-q7k7w 1/1 Running 0 31m
coredns-5c98db65d4-svdpf 1/1 Running 0 31m
etcd-kind-control-plane 1/1 Running 0 30m
kindnet-nv5gq 1/1 Running 1 31m
kube-apiserver-kind-control-plane 1/1 Running 0 30m
kube-controller-manager-kind-control-plane 1/1 Running 0 30m
kube-proxy-4n874 1/1 Running 0 31m
kube-scheduler-kind-control-plane