Both sides previous revision Previous revision Next revision | Previous revision |
devops:kubernetes_docker_deprecating [2022/01/22 12:32] – admin | devops:kubernetes_docker_deprecating [2022/04/23 17:34] (current) – admin |
---|
Flag --resolv-conf has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. </code> | Flag --resolv-conf has been deprecated, This parameter should be set via the config file specified by the Kubelet's --config flag. </code> |
В итоге: | В итоге: |
* В **/var/lib/kubelet/kubeadm-flags.env** осталось вот что: <code>KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.2 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"</code> | * В **/var/lib/kubelet/kubeadm-flags.env** осталось вот что: <code>KUBELET_KUBEADM_ARGS="--network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.2 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"</code> или <code>KUBELET_KUBEADM_ARGS="--fail-swap-on=false --pod-infra-container-image=k8s.gcr.io/pause:3.4.1 --container-runtime=remote --container-runtime-endpoint=unix:///run/containerd/containerd.sock"</code> |
* Параметры **--resolv-conf** и **--cgroup-driver** переехали в **/var/lib/kubelet/config.yaml**: <code>resolvConf: /run/systemd/resolve/resolv.conf | * Параметры **--resolv-conf** и **--cgroup-driver** переехали в **/var/lib/kubelet/config.yaml**: <code>resolvConf: /run/systemd/resolve/resolv.conf |
cgroupDriver: systemd</code> | cgroupDriver: systemd</code> |
После удаления **docker** многие пакеты, в том числе и **containerd**, будут считаться ненужными и могут быть автоматически удалены! Поэтому - их нужно переустановить вручную: | После удаления **docker** многие пакеты, в том числе и **containerd**, будут считаться ненужными и могут быть автоматически удалены! Поэтому - их нужно переустановить вручную: |
apt-get install bridge-utils cgroupfs-mount containerd git patch pigz runc | apt-get install bridge-utils cgroupfs-mount containerd git patch pigz runc |
| Также - нужно прописать в свойствах ноды путь до сокета нового CRI. Проверить что там прописано сейчас можно так: |
| kubetl get no -o yaml | grep cri |
| И там должен быть путь до сокета **containerd**: |
| kubeadm.alpha.kubernetes.io/cri-socket: /run/containerd/containerd.sock |
| В моем случае - некорректное значение этого параметра (он указывал на docker-shim) приводило к тому что в логах kubelet service было много такого: |
| Apr 23 16:57:45 kub kubelet[771273]: E0423 16:57:45.583662 771273 cri_stats_provider.go:669] "Unable to fetch container log stats" err="failed to get fsstats for \"/var/log/pods/elk_elk-es-data-0_67a13965-df24-4d48-9abb-e6670f35acab/elasticsearch/4.log\": no such file or directory" containerName="elasticsearch" |
| Кажется, что по пути до сокета **CRI** определяется его тип и путь до логов. В моем случае - файл который пытался обнаружить kubelet был символической ссылкой на файл в **/var/lib/docker**, а после зуказания корректного пути до сокета в свойствах ноды - всё встало на свои места! \\ |
| Ну и анкордоним ноду: |
| kubectl uncordon kub |
| |
====== Проблемы ====== | ====== Проблемы ====== |
===== не запускается pod eck ===== | ===== не запускается pod eck ===== |
{"log.level":"error","@timestamp":"2021-06-01T20:31:34.184Z","log.logger":"manager","message":"Error setting GOMAXPROCS","service.version":"1.1.1-f13b6d26","service.type":"eck","ecs.version":"1.4.0","error":"invalid format for CGroupSubsys: \"12:freezer:/kubepods-burstable-podf1fe3a11_2795_4c46_8eb6_a1929f4a53b5.slice:cri-containerd:96c7b19a81ff398e19131d816fb6de264e53499e5ad9b5a563f879cf1b37390c\"","error.stack_trace":"github.com/go-logr/zapr.(*zapLogger).Error\n\t/go/pkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128\ngithub.com/elastic/cloud-on-k8s/cmd/manager.execute\n\t/go/src/github.com/elastic/cloud-on-k8s/cmd/manager/main.go:188\ngithub.com/elastic/cloud-on-k8s/cmd/manager.glob..func1\n\t/go/src/github.com/elastic/cloud-on-k8s/cmd/manager/main.go:74\ngithub.com/spf13/cobra.(*Command).execute\n\t/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:830\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\t/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914\ngithub.com/spf13/cobra.(*Command).Execute\n\t/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864\nmain.main\n\t/go/src/github.com/elastic/cloud-on-k8s/cmd/main.go:27\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:203"} | {"log.level":"error","@timestamp":"2021-06-01T20:31:34.184Z","log.logger":"manager","message":"Error setting GOMAXPROCS","service.version":"1.1.1-f13b6d26","service.type":"eck","ecs.version":"1.4.0","error":"invalid format for CGroupSubsys: \"12:freezer:/kubepods-burstable-podf1fe3a11_2795_4c46_8eb6_a1929f4a53b5.slice:cri-containerd:96c7b19a81ff398e19131d816fb6de264e53499e5ad9b5a563f879cf1b37390c\"","error.stack_trace":"github.com/go-logr/zapr.(*zapLogger).Error\n\t/go/pkg/mod/github.com/go-logr/zapr@v0.1.0/zapr.go:128\ngithub.com/elastic/cloud-on-k8s/cmd/manager.execute\n\t/go/src/github.com/elastic/cloud-on-k8s/cmd/manager/main.go:188\ngithub.com/elastic/cloud-on-k8s/cmd/manager.glob..func1\n\t/go/src/github.com/elastic/cloud-on-k8s/cmd/manager/main.go:74\ngithub.com/spf13/cobra.(*Command).execute\n\t/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:830\ngithub.com/spf13/cobra.(*Command).ExecuteC\n\t/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914\ngithub.com/spf13/cobra.(*Command).Execute\n\t/go/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864\nmain.main\n\t/go/src/github.com/elastic/cloud-on-k8s/cmd/main.go:27\nruntime.main\n\t/usr/local/go/src/runtime/proc.go:203"} |
Гугление вывело сюда: https://discuss.elastic.co/t/elastic-operator-0-crashloopbackoff/267736/3 \\ | Гугление вывело сюда: https://discuss.elastic.co/t/elastic-operator-0-crashloopbackoff/267736/3 \\ |
Нужно подредактировать конфиг **containerd**. В файлике **/etc/containerd/config.toml** раздел | Нужно подредактировать конфиг **containerd**. В файлике **/etc/containerd/config.toml** для пары плагинов нужно выставить параметры: |
| <code> |
| version = 2 |
| [plugins] |
| [plugins."io.containerd.grpc.v1.cri"] |
| [plugins."io.containerd.grpc.v1.cri".containerd] |
| [plugins."io.containerd.grpc.v1.cri".containerd.runtimes] |
| [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc] |
| runtime_type = "io.containerd.runc.v1" |
| [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options] |
| SystemdCgroup = true |
| </code> |
===== В кластере не работает DNS ===== | ===== В кластере не работает DNS ===== |
[[devops:kubernetes_dns_reply_from_unexpected_source|]] | [[devops:kubernetes_dns_reply_from_unexpected_source|]] |