Maxim
у вас в кореосях шеф не работает, но можно заюзать анзибель, например
Maxim
практиковать программирование на ямле
Denis
У нас так Concourse делает для деплоя, когда после сборки docker images вызывает актуальный config yml в рамках пайплайна)
Denis
Ansible кажется монстром
Maxim
$ kubectl version
...
Server Version: version.Info{Major:"1", Minor:"3", GitVersion:"v1.3.6" ...
Maxim
прастити, не сдержался :D
Maxim
бля
Maxim
что за хуямба
Maxim
# netstat -lpnt|grep hyper
...
tcp6 0 0 :::30900 :::* LISTEN 411/hyperkube
Maxim
# ps -p 411 -o args
COMMAND
/hyperkube proxy --proxy-mode=iptables --kubeconfig=/etc/kubernetes/kubeconfig.yaml --log-dir=/var/log/kubernetes
Maxim
# curl 0.0.0.0:30900
<a href="/graph">Found</a>.
# curl 0.0.0.0:30900/graph
...
<title>Prometheus Time Series Collection and Processing Server</title>
Maxim
штоблять?..
Maxim
$ kubectl get svc prometheus -o yaml
…
spec:
clusterIP: 10.222.29.130
ports:
- name: prometheus
nodePort: 30900
port: 9090
…
Maxim
мистика
Maxim
откуда взялся этот nodePort?..
Zon
Смотри на свои манифесты)
Zon
Maxim
почему-то сервис-тайпом у прометея оказался нодепорт
Maxim
но в локальном-то сервис-файле там кластер-айпи
Maxim
жесть какая-то
Denis
Максим, спасибо за величайшие советы :) Завтра утром попробую накатить))
Denis
Пока только часть переписал конфигов
Maxim
> попробую накатить
Maxim
береги печень!
Maxim
;)
Maxim
@DenisIzmaylov кстати
если ты будешь накатывать все с нуля, то тогда еще в apiserver.yaml добавь:
--storage-backend=etcd3
Maxim
чтобы оно v2-storage даже и не инициализировало
Denis
Всем доброе утро :)
Denis
Сегодня мы продолжаем историю, на которую вчера меня уговорил Максим - полный апдейт Kubernetes до 1.3.5 (pre-latest), всей модели хранения и запуска конфигурации. Cloud Config для CoreOS нод уже почти готов. Оставайтесь на связи и не переключайтесь. :)
Maxim
s/1.3.5/1.3.6/g
Denis
Ты прямо вот так сразу на последние версии всегда переезжаешь? :)
Maxim
ну я ж не предлагаю тебе 1.4alpha3
Denis
Меня JavaScript-экосистема научила держаться на pre-latest версиях :))
Denis
Я бы на 1.5 сразу, чтобы несколько мастеров
Maxim
не вижу смысла не накатывать последний минорный релиз
Maxim
там же багфиксы в основном
Denis
Так у тебя же вчера оно Прометеус отвалило, как я понял? )
Maxim
не
Maxim
это по причине мудаков вчера было
Denis
)))
Maxim
коллега манифест через kubectl edit поправил
Maxim
в репу не положил
Maxim
поэтому я и не знал про него
Denis
вечная проблема, кстати, синхронизация реп / доков с рантайм конфигурациями
Denis
я сегодня выбрался даже в Coffee Bean на чистые пруды, чтобы сосредоточиться
Denis
чувствую день будет жарким)
Denis
так, всё cloud-configs готовы
[Service]
EnvironmentFile=/etc/environment
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStartPre=/usr/bin/curl -L -o /opt/bin/kubelet -z /opt/bin/kubelet https://storage.googleapis.com/kubernetes-release/release/v1.3.6/bin/linux/amd64/kubelet
ExecStartPre=/usr/bin/chmod +x /opt/bin/kubelet
ExecStart=/opt/bin/kubelet \
--address=${COREOS_PRIVATE_IPV4} \
--port=10250 \
--hostname-override=${COREOS_PRIVATE_IPV4} \
--allow-privileged=true \
--logtostderr=true \
--cadvisor-port=4194 \
--healthz-bind-address=0.0.0.0 \
--cluster-dns=${DNS_PRIVATE_IPV4} \
--cluster-domain="kube.local" \
--healthz-port=10248 \
--config=/etc/kubernetes/manifests
--kubeconfig=/etc/kubernetes/kube-config.yaml
Restart=always
RestartSec=10
Denis
заряжаю манифесты
Maxim
/usr/bin/curl -L -o /opt/bin/kubelet -z /opt/bin/kubelet ...
Maxim
не делай так
Denis
ещё кстати заметил у тебя есть блок users в kubeconfig.yml, он должен совпадать с пользователем по умолчанию или как?
Denis
Denis
вроде же https
Maxim
mkdir -p /opt/kubernetes/${K8S_VERSION}/bin
usr/bin/curl -L -o /opt/kubernetes/${K8S_VERSION}/bin/kubelet \
https://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/linux/amd64/kubelet
ln -nsf /opt/kubernetes/${K8S_VERSION}/bin/kubelet /opt/bin/kubelet
Maxim
вот так лучше сделай
Denis
а, ты про версию?
Maxim
не только про версию
Denis
а, ещё и директорию
Denis
))
Denis
immutable kubelet
Maxim
так в /opt/bin/kubelet у тебя всегда будет симлинк на актуальную версию
Maxim
и ты не будешь нарываться на херню, когда тебе wget запишет файл /opt/bin/kubelet.1
Maxim
или curl скажет, что файл мол запущен, не буду заменять
Denis
а ln такого не скажет?
Maxim
а так файлы каждый раз уникальные, а симлинкам на все похер
Maxim
они ж симлинки
Denis
кайф
Denis
крутизна 80lvl
Denis
luxury
Denis
Maxim
фубля
Maxim
Denis
[Service]
EnvironmentFile=/etc/environment
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStartPre=mkdir -p /opt/kubernetes/${K8S_VERSION}/bin
ExecStartPre=/usr/bin/curl -L -o /opt/kubernetes/${K8S_VERSION}/bin/kubelet \
https://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/linux/amd64/kubelet
ExecStartPre=/usr/bin/chmod +x /opt/kubernetes/${K8S_VERSION}/bin/kubelet
ExecStartPre=/usr/bin/ln -nsf /opt/kubernetes/${K8S_VERSION}/bin/kubelet /opt/bin/kubelet
ExecStart=/opt/bin/kubelet \
--address=${COREOS_PRIVATE_IPV4} \
--port=10250 \
--hostname-override=${COREOS_PRIVATE_IPV4} \
--allow-privileged=true \
--logtostderr=true \
--cadvisor-port=4194 \
--healthz-bind-address=0.0.0.0 \
--cluster-dns=${DNS_PRIVATE_IPV4} \
--cluster-domain="kube.local" \
--healthz-port=10248 \
--config=/etc/kubernetes/manifests
--kubeconfig=/etc/kubernetes/kube-config.yaml
Restart=always
RestartSec=10
Maxim
типа того, да
Denis
"пользователь по-умолчанию" = в coreos это пользователь coreos :)
Denis
т.е. я к тому, что это должно совпадать с чем-то?
Denis
а всё вижу
Denis
мы же default-context указываем, а в нём для контекста кластер и пользователя
Maxim
у тебя же current-context в кубеконфиге
Maxim
там ползатель kubelet