Kubernetes - Настройка
Перед настройкой Kubernetes важно настроить Virtual Datacenter (vDC). Это можно рассматривать как набор машин, на которых они могут связываться друг с другом через сеть. Для практического подхода вы можете настроить vDC наPROFITBRICKS если у вас не настроена физическая или облачная инфраструктура.
После завершения настройки IaaS в любом облаке вам необходимо настроить Master и Node.
Note- Настройка показана для машин с Ubuntu. То же самое можно настроить и на других машинах Linux.
Предпосылки
Installing Docker- Docker требуется на всех экземплярах Kubernetes. Ниже приведены шаги по установке Docker.
Step 1 - Войдите в систему с учетной записью пользователя root.
Step 2- Обновите информацию о пакете. Убедитесь, что пакет apt работает.
Step 3 - Выполните следующие команды.
$ sudo apt-get update
$ sudo apt-get install apt-transport-https ca-certificates
Step 4 - Добавьте новый ключ GPG.
$ sudo apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D
$ echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee
/etc/apt/sources.list.d/docker.list
Step 5 - Обновите образ пакета API.
$ sudo apt-get update
После выполнения всех вышеперечисленных задач вы можете приступить к фактической установке движка Docker. Однако перед этим вам необходимо убедиться, что используемая вами версия ядра верна.
Установить Docker Engine
Выполните следующие команды, чтобы установить ядро Docker.
Step 1 - Войдите в систему.
Step 2 - Обновите индекс пакета.
$ sudo apt-get update
Step 3 - Установите Docker Engine с помощью следующей команды.
$ sudo apt-get install docker-engine
Step 4 - Запустите демон Docker.
$ sudo apt-get install docker-engine
Step 5 - Чтобы установить Docker, используйте следующую команду.
$ sudo docker run hello-world
Установите etcd 2.0
Его необходимо установить на Kubernetes Master Machine. Чтобы установить его, выполните следующие команды.
$ curl -L https://github.com/coreos/etcd/releases/download/v2.0.0/etcd
-v2.0.0-linux-amd64.tar.gz -o etcd-v2.0.0-linux-amd64.tar.gz ->1
$ tar xzvf etcd-v2.0.0-linux-amd64.tar.gz ------>2
$ cd etcd-v2.0.0-linux-amd64 ------------>3
$ mkdir /opt/bin ------------->4
$ cp etcd* /opt/bin ----------->5
В приведенном выше наборе команд -
- Сначала мы загружаем etcd. Сохраните это с указанным именем.
- Затем мы должны разархивировать tar-пакет.
- Делаем реж. внутри / opt с именем bin.
- Скопируйте извлеченный файл в целевое расположение.
Теперь мы готовы построить Kubernetes. Нам нужно установить Kubernetes на все машины в кластере.
$ git clone https://github.com/GoogleCloudPlatform/kubernetes.git
$ cd kubernetes
$ make release
Приведенная выше команда создаст _outputdir в корне папки kubernetes. Затем мы можем извлечь каталог в любой из выбранных нами каталогов / opt / bin и т. Д.
Затем идет сетевая часть, в которой нам нужно начать с настройки мастера и узла Kubernetes. Для этого мы сделаем запись в файле хоста, что можно сделать на машине узла.
$ echo "<IP address of master machine> kube-master
< IP address of Node Machine>" >> /etc/hosts
Ниже будет вывод вышеуказанной команды.
Теперь мы начнем с реальной конфигурации Kubernetes Master.
Сначала мы начнем копировать все файлы конфигурации в их правильное место.
$ cp <Current dir. location>/kube-apiserver /opt/bin/
$ cp <Current dir. location>/kube-controller-manager /opt/bin/
$ cp <Current dir. location>/kube-kube-scheduler /opt/bin/
$ cp <Current dir. location>/kubecfg /opt/bin/
$ cp <Current dir. location>/kubectl /opt/bin/
$ cp <Current dir. location>/kubernetes /opt/bin/
Приведенная выше команда скопирует все файлы конфигурации в необходимое место. Теперь мы вернемся в тот же каталог, где мы создали папку Kubernetes.
$ cp kubernetes/cluster/ubuntu/init_conf/kube-apiserver.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-controller-manager.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-kube-scheduler.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-apiserver /etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-controller-manager /etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-kube-scheduler /etc/init.d/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet /etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kube-proxy /etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet /etc/default/
Следующим шагом будет обновление скопированного файла конфигурации в / etc. реж.
Настройте etcd на главном сервере, используя следующую команду.
$ ETCD_OPTS = "-listen-client-urls = http://kube-master:4001"
Настроить kube-apiserver
Для этого на мастере нам нужно отредактировать /etc/default/kube-apiserver файл, который мы скопировали ранее.
$ KUBE_APISERVER_OPTS = "--address = 0.0.0.0 \
--port = 8080 \
--etcd_servers = <The path that is configured in ETCD_OPTS> \
--portal_net = 11.1.1.0/24 \
--allow_privileged = false \
--kubelet_port = < Port you want to configure> \
--v = 0"
Настроить kube Controller Manager
Нам нужно добавить следующий контент в /etc/default/kube-controller-manager.
$ KUBE_CONTROLLER_MANAGER_OPTS = "--address = 0.0.0.0 \
--master = 127.0.0.1:8080 \
--machines = kube-minion \ -----> #this is the kubernatics node
--v = 0
Затем настройте планировщик kube в соответствующем файле.
$ KUBE_SCHEDULER_OPTS = "--address = 0.0.0.0 \
--master = 127.0.0.1:8080 \
--v = 0"
Как только все вышеперечисленные задачи будут выполнены, мы можем продолжить и запустить Kubernetes Master. Для этого мы перезапустим Docker.
$ service docker restart
Конфигурация узла Kubernetes
Узел Kubernetes будет запускать две службы: kubelet and the kube-proxy. Прежде чем двигаться дальше, нам нужно скопировать загруженные двоичные файлы в соответствующие папки, где мы хотим настроить узел kubernetes.
Используйте тот же метод копирования файлов, который мы использовали для мастера kubernetes. Поскольку он будет запускать только kubelet и kube-proxy, мы настроим их.
$ cp <Path of the extracted file>/kubelet /opt/bin/
$ cp <Path of the extracted file>/kube-proxy /opt/bin/
$ cp <Path of the extracted file>/kubecfg /opt/bin/
$ cp <Path of the extracted file>/kubectl /opt/bin/
$ cp <Path of the extracted file>/kubernetes /opt/bin/
Теперь мы скопируем контент в соответствующий каталог.
$ cp kubernetes/cluster/ubuntu/init_conf/kubelet.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/init_conf/kube-proxy.conf /etc/init/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kubelet /etc/init.d/
$ cp kubernetes/cluster/ubuntu/initd_scripts/kube-proxy /etc/init.d/
$ cp kubernetes/cluster/ubuntu/default_scripts/kubelet /etc/default/
$ cp kubernetes/cluster/ubuntu/default_scripts/kube-proxy /etc/default/
Мы настроим kubelet и kube-proxy conf файлы.
Мы настроим /etc/init/kubelet.conf.
$ KUBELET_OPTS = "--address = 0.0.0.0 \
--port = 10250 \
--hostname_override = kube-minion \
--etcd_servers = http://kube-master:4001 \
--enable_server = true
--v = 0"
/
Для kube-proxy мы настроим с помощью следующей команды.
$ KUBE_PROXY_OPTS = "--etcd_servers = http://kube-master:4001 \
--v = 0"
/etc/init/kube-proxy.conf
Наконец, мы перезапустим службу Docker.
$ service docker restart
Теперь мы закончили настройку. Вы можете проверить это, выполнив следующие команды.
$ /opt/bin/kubectl get minions