Kubernetes the hard way etcd setup: различия между версиями
Материал из noname.com.ua
Перейти к навигацииПерейти к поискуSirmax (обсуждение | вклад) (→DNS) |
Sirmax (обсуждение | вклад) |
||
Строка 58: | Строка 58: | ||
mv /usr/lib/systemd/system/etcd.service /root/etcd.service.original |
mv /usr/lib/systemd/system/etcd.service /root/etcd.service.original |
||
</code> |
</code> |
||
+ | |||
+ | |||
+ | ==Systemd unit== |
||
+ | <PRE> |
||
+ | /etc/systemd/system/etcd.service |
||
+ | </PRE> |
||
+ | <PRE> |
||
+ | [Unit] |
||
+ | Description=etcd |
||
+ | Documentation=https://github.com/coreos |
||
+ | |||
+ | [Service] |
||
+ | Type=notify |
||
+ | LimitNOFILE=65536 |
||
+ | Environment=ETCD_UNSUPPORTED_ARCH=arm64 |
||
+ | EnvironmentFile=/etc/etcd/env |
||
+ | ExecStart=/usr/bin/etcd \ |
||
+ | --debug \ |
||
+ | --name=etcd-az-1 \ |
||
+ | --listen-peer-urls=https://10.240.1.2:2380 \ |
||
+ | --listen-client-urls=https://10.240.1.2:2379,https://127.0.0.1:2379 \ |
||
+ | --advertise-client-urls=https://etcd.az1.k8s.home:2379 \ |
||
+ | --initial-advertise-peer-urls=https://etcd.az1.k8s.home:2380 \ |
||
+ | --initial-cluster-token=etcd.az1.k8s.home \ |
||
+ | --initial-cluster etcd-az-1=https://etcd.az1.k8s.home:2380,etcd-az-2=https://etcd.az2.k8s.home:2380,etcd-az-3=https://etcd.az3.k8s.home:2380 \ |
||
+ | --initial-cluster-state=new \ |
||
+ | --data-dir=/var/lib/etcd \ |
||
+ | --peer-client-cert-auth \ |
||
+ | --peer-cert-file=/etc/etcd/certs/server/etcd.az1.k8s.home.pem \ |
||
+ | --peer-key-file=/etc/etcd/certs/server/etcd.az1.k8s.home.key \ |
||
+ | --peer-trusted-ca-file=/etc/etcd/certs/rootCA.pem \ |
||
+ | --trusted-ca-file=/etc/etcd/certs/rootCA.pem \ |
||
+ | --cert-file=/etc/etcd/certs/client/etcd.az1.k8s.home.pem \ |
||
+ | --key-file=/etc/etcd/certs/client/etcd.az1.k8s.home.key \ |
||
+ | --client-cert-auth |
||
+ | |||
+ | Restart=on-failure |
||
+ | RestartSec=60 |
||
+ | |||
+ | [Install] |
||
+ | WantedBy=multi-user.target |
||
+ | Alias=etcd-server.service |
||
+ | </PRE> |
Версия 17:27, 9 октября 2022
ETCD
Вторая версия статьи, максимально подробная (первая версия тут - https://noname.com.ua/mediawiki/index.php/Etcd)
Требования к окружению
- 3 ноды raspberry pi установленные и настроенные, имеющие коннективити друг с другом
- для работы etcd выделен отдельный VLAN с отдельным адресным пространством
- установленный и настроенный PKI на основе Hashicorp Vault (в примере - по адресу http://vault.home)
- Настроенный DNS и созданы записи для всех доменов в примере (в моем случае DNS поднят на MikroTik)
DNS
Подчеркну что все взаимоджействие происходит исключительно по доменным именам
Создаем три записи DNS (для трех мастер-нод каждая из которых находится в своей "Availability Zone" (В кавычках по тому что в лабе это все очень условно)
/ip/dns/static/add name=etcd.master.az1.k8s.cluster.home address=10.0.11.1<br> /ip/dns/static/add name=etcd.master.az2.k8s.cluster.home address=10.0.21.1<br> /ip/dns/static/add name=etcd.master.az3.k8s.cluster.home address=10.0.31.1<br>
Установка из пакетов (на всех трех нодах)
Собирать код самой последней версии под архитектуру АРМ откровенно лениво
apt -y \ install \ etcd \ etcd-client \ etcd-server \ etcd-discovery
dpkg -l | grep etcd
ii etcd 3.3.25+dfsg-7 all Transitional package for etcd-client and etcd-server ii etcd-client 3.3.25+dfsg-7 arm64 highly-available key value store -- client ii etcd-discovery 2.0.0+git2019.04.19.git.78fb45d3c9-4 arm64 etcd discovery service ii etcd-server 3.3.25+dfsg-7 arm64 highly-available key value store -- daemon
Остановить сервис (запускается после установки)
systemctl stop etcd
Переместить юнит (свой вариант юнита создается ниже)
mv /usr/lib/systemd/system/etcd.service /root/etcd.service.original
Systemd unit
/etc/systemd/system/etcd.service
[Unit] Description=etcd Documentation=https://github.com/coreos [Service] Type=notify LimitNOFILE=65536 Environment=ETCD_UNSUPPORTED_ARCH=arm64 EnvironmentFile=/etc/etcd/env ExecStart=/usr/bin/etcd \ --debug \ --name=etcd-az-1 \ --listen-peer-urls=https://10.240.1.2:2380 \ --listen-client-urls=https://10.240.1.2:2379,https://127.0.0.1:2379 \ --advertise-client-urls=https://etcd.az1.k8s.home:2379 \ --initial-advertise-peer-urls=https://etcd.az1.k8s.home:2380 \ --initial-cluster-token=etcd.az1.k8s.home \ --initial-cluster etcd-az-1=https://etcd.az1.k8s.home:2380,etcd-az-2=https://etcd.az2.k8s.home:2380,etcd-az-3=https://etcd.az3.k8s.home:2380 \ --initial-cluster-state=new \ --data-dir=/var/lib/etcd \ --peer-client-cert-auth \ --peer-cert-file=/etc/etcd/certs/server/etcd.az1.k8s.home.pem \ --peer-key-file=/etc/etcd/certs/server/etcd.az1.k8s.home.key \ --peer-trusted-ca-file=/etc/etcd/certs/rootCA.pem \ --trusted-ca-file=/etc/etcd/certs/rootCA.pem \ --cert-file=/etc/etcd/certs/client/etcd.az1.k8s.home.pem \ --key-file=/etc/etcd/certs/client/etcd.az1.k8s.home.key \ --client-cert-auth Restart=on-failure RestartSec=60 [Install] WantedBy=multi-user.target Alias=etcd-server.service