Kubeadm: рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдПрдХ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХреБрдмреЗрджрдо рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рджрд╛рди рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 22 рдирд╡ре░ 2016  ┬╖  55рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kubernetes/kubeadm

_27 рдЕрдХреНрдЯреВрдмрд░, 2016 рдХреЛ @andersla рд╕реЗ 18:8_

Ubuntu 16.04 рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ Kubeadm рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг ( kubectl version ):
рдирд╡реАрдирддрдо

рдкрд░реНрдпрд╛рд╡рд░рдг :
рдЙрдмрдВрдЯреВ 16.04 рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░

рдХреНрдпрд╛ рд╣реБрдЖ :
Ubuntu 16.04 рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ Kubeadm рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдореЗрд░рд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рдХреЛ рдорд╛рд╕реНрдЯрд░ "рдиреЛрдб" рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рджреВрд╕рд░реЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рд╡рд░реНрдХрд░ "рдиреЛрдб" (рдбреЙрдХрд░ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕) рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред
рдХреНрдпрд╛ рдпрд╣ рдПрдХ рд╕рд┐рд╕реНрдЯрдордб рдореБрджреНрджрд╛ рд╣реИ? (рдЬрд╡рд╛рдм рдХреЗ рд▓рд┐рдП "рдЧреБрдЧрд▓рд┐рдВрдЧ" рдХрд░рддреЗ рд╕рдордп рдХреБрдЫ рдЖрдпрд╛)

рдЙрдмрдВрдЯреВ 16.04 рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рдХреЗ рдЕрдВрджрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ: apt-get install -y kubeadm

рд╕реЗрдЯрдЕрдк рд▓реЙрдЧ:

...
...
...
all: Setting up socat (1.7.3.1-1) ...
    all: Setting up kubelet (1.4.3-00) ...
    all: /var/lib/dpkg/info/kubelet.postinst: 38: /var/lib/dpkg/info/kubelet.postinst: [[: not found
    all: Setting up kubectl (1.4.3-00) ...
    all: Setting up kubeadm (1.5.0-alpha.0-1534-gcf7301f-00) ...
    all: Failed to connect to bus: No such file or directory
    **all: dpkg: error processing package kubeadm (--configure):**
    all: subprocess installed post-installation script returned error exit status 1
    all: Setting up netcat-traditional (1.10-41) ...
    all: update-alternatives: using /bin/nc.traditional to provide /bin/nc (nc) in auto mode
    all: Setting up netcat (1.10-41) ...
    all: Setting up patch (2.7.5-1) ...
    all: Setting up rename (0.20-4) ...
    all: update-alternatives: using /usr/bin/file-rename to provide /usr/bin/rename (rename) in auto mode
    all: Setting up tcpd (7.6.q-25) ...
    all: Setting up ubuntu-fan (0.9.1) ...
    all: invoke-rc.d: could not determine current runlevel
    all: invoke-rc.d: policy-rc.d denied execution of start.
    all: Setting up xz-utils (5.1.1alpha+20120614-2ubuntu2) ...
    all: update-alternatives: using /usr/bin/xz to provide /usr/bin/lzma (lzma) in auto mode
    all: Setting up python3 (3.5.1-3) ...
    all: running python rtupdate hooks for python3.5...
    all: running python post-rtupdate hooks for python3.5...
    all: Setting up apparmor (2.10.95-0ubuntu2.2) ...
    all: update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
    all: Setting up dh-python (2.20151103ubuntu1.1) ...
    all: Processing triggers for libc-bin (2.23-0ubuntu4) ...
    all: Processing triggers for systemd (229-4ubuntu11) ...
    all: Processing triggers for initramfs-tools (0.122ubuntu8.5) ...
    all: Processing triggers for dbus (1.10.6-1ubuntu3) ...
    all: Errors were encountered while processing:
    all: kubeadm
    all: E: Sub-process /usr/bin/dpkg returned an error code (1)
==> all: Killing the container: 93babb5045461c343a803109ba683a2acf68f1f453447a336b09171a1b190f38
Build 'all' errored: Script exited with non-zero exit status: 100

==> Some builds didn't complete successfully and had errors:
--> all: Script exited with non-zero exit status: 100

_рдореВрд▓ рдЕрдВрдХ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдЧрдпрд╛: Kubernetes/kubernetes#35712_

aretesting documentatiocontent-gap kinsupport prioritbacklog

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдлрд▓рд╛рд▓реИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣рд╛рдБ рдкреВрд░рд╛ рд╕реЗрдЯрдЕрдк рд╣реИ:

рдбреЙрдХрд░рдлрд╛рдЗрд▓:

FROM ubuntu:xenial-20161213

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update -qq

RUN apt-get install -y \
    apt-transport-https \
    apt-utils \
    ca-certificates \
    curl \
    dialog \
    python \
    daemon \
    vim \
    jq

# remove unwanted systemd services
RUN for i in /lib/systemd/system/sysinit.target.wants/*; do [ "${i##*/}" = "systemd-tmpfiles-setup.service" ] || rm -f "$i"; done; \
  rm -f /lib/systemd/system/multi-user.target.wants/*;\
  rm -f /etc/systemd/system/*.wants/*;\
  rm -f /lib/systemd/system/local-fs.target.wants/*; \
  rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
  rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
  rm -f /lib/systemd/system/basic.target.wants/*;\
  rm -f /lib/systemd/system/anaconda.target.wants/*;

# install docker (after removing unwanted systemd)
RUN apt-get install -y \
    docker.io

RUN echo "Add Kubernetes repo..."
RUN sh -c 'curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -'
RUN sh -c 'echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list'

RUN echo "Installing Kubernetes requirements..."
RUN apt-get update -y && apt-get install -y \
  kubelet \
  kubernetes-cni \
  kubectl

RUN echo "Installing Kubeadm - this will fail at post-install but that doesn't matter"
RUN apt-get install -y \
  kubeadm; exit 0

# Create volume for docker
VOLUME /var/lib/docker

рдЗрд╕рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдБ:
docker build -t kubeadm_docker .

рдФрд░ рдлрд┐рд░ рдЪрд▓рд╛рдПрдБ:
docker run -it --privileged=true --name=master -h master -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro kubeadm_docker /sbin/init

рдХреБрдЫ (10-15) рд╕реЗрдХрдВрдб рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ systemd рдФрд░ docker рдКрдкрд░ рдФрд░ рдЪрд▓ рди рдЬрд╛рдП

рдлрд┐рд░ рдореИрдВ рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХреБрдмреЗрджрдо рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ:
docker exec -it master kubeadm init --skip-preflight-checks --token=acbec6.2852dff7cb569aa0

рдЬрдм рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рджреВрд╕рд░рд╛ "рдХрд╛рд░реНрдпрдХрд░реНрддрд╛" рдиреЛрдб рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ:
docker run -it --privileged=true --name=node -h node -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro kubeadm_docker /sbin/init

рдФрд░ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж (рд╕рд┐рд╕реНрдЯрдордб рдФрд░ рдбреЙрдХрд░ рдХреЗ рдЙрдардиреЗ рддрдХ) рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЬреБрдбрд╝реЗрдВ:
docker exec -it node kubeadm join --skip-preflight-checks --token=acbec6.2852dff7cb569aa0 172.17.0.2

рдЬрдм рд╡реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдП, - рдорд╛рд╕реНрдЯрд░ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
docker exec -it master bash

kubectl -n kube-system get ds -l 'component=kube-proxy' -o json | jq '.items[0].spec.template.spec.containers[0].command |= .+ ["--conntrack-max-per-core=0"]' | kubectl apply -f - && kubectl -n kube-system delete pods -l 'component=kube-proxy'

рдЕрдВрдд рдореЗрдВ рдлрд▓рд╛рд▓реИрди рдУрд╡рд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
curl -sSL "https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true" | kubectl create -f -

рдореБрдЭреЗ рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╣реЗрд▓реНрдо, рдЯреНрд░реИрдлрд┐рдХ рдпрд╛ рдЧреНрд▓рд╕реНрдЯрд░рдПрдлрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА :)

рд╕рднреА 55 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдХреНрдЯреВрдмрд░ 27, рд╡рд░реНрд╖ 2016 18 рдкрд░ _From @luxas: 14_

cc @errordeveloper рдФрд░ @marun рдЬрдм рд╕реЗ рд╡реЗ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ systemd рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ

@andersla рд╕рд╛рд╡рдзрд╛рди рд░рд╣реЗрдВ рдХрд┐ рдПрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ

_From @zreigz 28 рдЕрдХреНрдЯреВрдмрд░, 2016 7: 36_

рдпрджрд┐ рдЖрдк рдмреБрд░рд╛ рди рдорд╛рдиреЗрдВ рддреЛ рдореИрдВ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрд░реАрдм рд╕реЗ рджреЗрдЦреВрдВ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВред

_From @andersla 28 рдЕрдХреНрдЯреВрдмрд░, 2016 8: 48_

@zreigz рдХреГрдкрдпрд╛ рдХрд░реЗрдВ!
рдЗрд╕ рддрд░рд╣ рдореИрдВ рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реВрдВ:

docker run -it --privileged ubuntu /bin/bash

рдФрд░ рддрдм:

echo "Updating Ubuntu..."
apt-get update -y
apt-get upgrade -y

echo "Install os requirements"
apt-get install -y \
  curl \
  apt-transport-https \
  dialog \
  python \
  daemon

echo "Add Kubernetes repo..."
sh -c 'curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -'
sh -c 'echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list'
apt-get update -y

echo "Installing Kubernetes requirements..."
apt-get install -y \
  docker.io \
  kubelet \
  kubernetes-cni \
  kubectl \
  kubeadm

рдФрд░ рдпрд╣ рд╡рд╣ рддреНрд░реБрдЯрд┐ рд╣реИ рдЬреЛ рдореБрдЭреЗ рддрдм рдорд┐рд▓рддреА рд╣реИ рдЬрдм рдХреБрдмреЗрджрдо рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:

root<strong i="16">@82f5321d45cb</strong>:/# apt-get install kubeadm
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  kubeadm
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 7981 kB of archives.
After this operation, 59.2 MB of additional disk space will be used.
Get:1 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 kubeadm amd64 1.5.0-alpha.0-1534-gcf7301f-00 [7981 kB]
Fetched 7981 kB in 0s (8532 kB/s)
Selecting previously unselected package kubeadm.
(Reading database ... 14222 files and directories currently installed.)
Preparing to unpack .../kubeadm_1.5.0-alpha.0-1534-gcf7301f-00_amd64.deb ...
Unpacking kubeadm (1.5.0-alpha.0-1534-gcf7301f-00) ...
Setting up kubeadm (1.5.0-alpha.0-1534-gcf7301f-00) ...
Failed to connect to bus: No such file or directory
dpkg: error processing package kubeadm (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 kubeadm
E: Sub-process /usr/bin/dpkg returned an error code (1)

_28 рдЕрдХреНрдЯреВрдмрд░ 2016 9:10 рдкрд░ @zreigz рд╕реЗ

рдореИрдВрдиреЗ рдЗрд╕реЗ рджреЛрдмрд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

_From @zreigz 31 рдЕрдХреНрдЯреВрдмрд░ рдХреЛ, 2016 7: 24_

рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред

рдкрд╣рд▓рд╛ рд╡рд╛рд▓рд╛: ll: /var/lib/dpkg/info/kubelet.postinst: 38: /var/lib/dpkg/info/kubelet.postinst: [[: not found
рдЙрдмрдВрдЯреВ рд╕рд┐рд╕реНрдЯрдо рдкрд░, /bin/sh рдбреИрд╢ рд╣реИ, рдмреИрд╢ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдбреИрд╢ рдбрдмрд▓ рдмреНрд░реИрдХреЗрдЯ рдХреАрд╡рд░реНрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдкрд░ рддрдп рдХреА рдЧрдИ рд╣реИ рдФрд░ рдЬрд▓реНрдж рд╣реА рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП: https://github.com/kubernetes/release/blob/master/debian/xenial/kubelet/debian/postinst#L40

рджреВрд╕рд░рд╛ рдЗрддрдирд╛ рддреБрдЪреНрдЫ рдирд╣реАрдВ рд╣реИред рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ systemctl Failed to get D-Bus connection рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдордб рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдареАрдХ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдореИрдВ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ

_From @andersla 31 рдЕрдХреНрдЯреВрдмрд░ рдХреЛ, 2016 7: 42_

рдорд╣рд╛рди!
рдореИрдВ рдЕрднреА рдпрд╣ рдирд╣реАрдВ рджреЗрдЦрддрд╛ рдХрд┐ рдХреБрдмреЗрджрдо рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдордб/рд╕рд┐рд╕реНрдЯрдордХреНрдЯрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?

_From @zreigz 31 рдЕрдХреНрдЯреВрдмрд░ рдХреЛ, 2016 7: 47_

рдЙрди рджреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг: https://github.com/kubernetes/release/blob/master/debian/xenial/kubeadm/debian/postinst#L25

systemctl daemon-reload
systemctl restart kubelet

рдпрд╣ рдкрд╣рд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

_From @zreigz 31 рдЕрдХреНрдЯреВрдмрд░ рдХреЛ, 2016 7: 48_

рдпрд╣ рд╡реНрдпрд╛рдЦреНрдпрд╛ рд╣реИ:

# because kubeadm package adds kubelet drop-ins, we must daemon-reload
# and restart kubelet now. restarting kubelet is ok because kubelet
# postinst configure step auto-starts it.

_From @zreigz 31 рдЕрдХреНрдЯреВрдмрд░ рдХреЛ, 2016 7: 52_

рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЪрд░рдг рд╣реИрдВ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрд╣рд▓реЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдирд╛ рд╣реЛрдЧрд╛ред рдЕрдЧрд░ рдореБрдЭреЗ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛ рджреВрдВрдЧрд╛ред

_From @zreigz 2 рдирд╡рдВрдмрд░ рдХреЛ, 2016 7: 19_

рдЕрдЪреНрдЫреА рдЦрдмрд░ред рдореИрдВрдиреЗ рд╕рднреА рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдмреА рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред рдЗрд╕реЗ рдЕрдВрддрд┐рдо рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдореИрдВ рд╕рдорд╛рдзрд╛рди рдкреЛрд╕реНрдЯ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХреБрдмреЗрджрдо рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдП

_@ andersla рд╕реЗ 2 рдирд╡рдВрдмрд░ 2016 рдХреЛ 7:23_

рдЙрддреНрддрдо! рдЬреИрд╕реЗ рд╣реА рдпрд╣ рддреИрдпрд╛рд░ рд╣реЛрдЧрд╛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдорджрдж рдХрд░реВрдВрдЧрд╛! - рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдмрд╛рдХреА рджрд┐рдиреЛрдВ рдореЗрдВ рдЫреБрдЯреНрдЯрд┐рдпреЛрдВ рдкрд░ рд╣реВрдБ :)

_From @zreigz 2 рдирд╡рдВрдмрд░ рдХреЛ, 2016 10: 13_

рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдХреБрдмреЗрджрдо рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рджреЛ рдореБрдЦреНрдп рдореБрджреНрджреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рд╕рд┐рд╕реНрдЯрдордб рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред рджреВрд╕рд░рд╛ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдбреЙрдХрдЯрд░ рд╣реИред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдпрд╣рд╛рдВ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдмрдВрдЯреВ рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП

FROM ubuntu
ENV container docker
RUN apt-get -y update

RUN apt-get update -qq && apt-get install -qqy \
    apt-transport-https \
    ca-certificates \
    curl \
    lxc \
    vim \
    iptables

RUN curl -sSL https://get.docker.com/ | sh

RUN (cd /lib/systemd/system/sysinit.target.wants/; for i in *; do [ $i == systemd-tmpfiles-setup.service ] || rm -f $i; done); \
rm -f /lib/systemd/system/multi-user.target.wants/*;\
rm -f /etc/systemd/system/*.wants/*;\
rm -f /lib/systemd/system/local-fs.target.wants/*; \
rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
rm -f /lib/systemd/system/basic.target.wants/*;\
rm -f /lib/systemd/system/anaconda.target.wants/*;

VOLUME /sys/fs/cgroup
VOLUME /var/run/docker.sock
CMD /sbin/init

рдореИрдВ рдЗрд╕ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рд╡рд╛рд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ

docker build -t kubeadm_docker .

рдЕрдм рдЖрдк рддреИрдпрд╛рд░ рдЫрд╡рд┐ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдмреЗрджрдо рд╕реНрдерд╛рдкрдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
kubeadm_docker рдЫрд╡рд┐ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдЖрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

docker run -it -e "container=docker" --privileged=true -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock  kubeadm_docker /sbin/init

рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдЖрдИрдбреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
7dd73057620d        kubeadm_docker      "/sbin/init"        About an hour ago   Up About an hour                        furious_fermi

рдЕрдм рдЖрдк рдХрдВрдЯреЗрдирд░ рдХрдВрд╕реЛрд▓ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

docker exec -it 7dd73057620d /bin/bash

Kubeadm . рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЫреЛрдЯреЗ рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд╕рд╛рде) рд╣реИ

echo "Updating Ubuntu..."
apt-get update -y
apt-get upgrade -y

systemctl start docker

echo "Install os requirements"
apt-get install -y \
  curl \
  apt-transport-https \
  dialog \
  python \
  daemon

echo "Add Kubernetes repo..."
sh -c 'curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -'
sh -c 'echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list'
apt-get update -y

echo "Installing Kubernetes requirements..."
apt-get install -y \
  kubelet

# This is temporary fix until new version will be released
sed -i 38,40d /var/lib/dpkg/info/kubelet.postinst

apt-get install -y \
  kubernetes-cni \
  kubectl \
  kubeadm

рдФрд░ рдЕрдВрдд рдореЗрдВ рдЖрдк рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

# kubeadm init

рд╕рдм рдХреБрдЫ рд╕реНрдерд╛рдиреАрдп рдорд╢реАрди рдХреА рддрд░рд╣ рд╣реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЖрдкрдХреЛ рдХрд╛рдордпрд╛рдмреА рдорд┐рд▓реЗ :)

_From @SuperStevenZ 17 рдирд╡рдВрдмрд░, 2016 7: 21_

@zreigz рдЬрд┐рд╕рдиреЗ рдореЗрд░реА рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХреА, рдзрдиреНрдпрд╡рд╛рдж!

_From @zreigz 17 рдирд╡рдВрдмрд░, 2016 7: 30_

рдХреЛрдИ рджрд┐рдХреНрдХрдд рдирд╣реАрдВ рд╣реИ :)

рд╣рдореЗрдВ рдбреЙрдХрд░-рдЗрди-рдбреЙрдХрд░ рд╕рд╛рдорд╛рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕реАрдЖрдИ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

@errordeveloper @zreigz рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ?
рдХрдо рд╕реЗ рдХрдо рд╣рдореЗрдВ рдХрд╣реАрдВ рджрд╕реНрддрд╛рд╡реЗрдЬ рддреЛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХреБрдмреЗрджрдо рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ...

рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд▓рдЧ рд░рд╣рд╛ рд╣реИред рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдореЗрдВ рдорд╛рд╕реНрдЯрд░ рдФрд░ рдиреЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЛ рдбреЙрдХрдЯрд░ рдЗрдореЗрдЬ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдХреБрдЫ рдХреЙрдиреНрдлрд┐рдЧ/рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП Kubernetes/kubeadm-docker рдЬреИрд╕реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рдЕрдЪреНрдЫреА рд╢реБрд░реБрдЖрдд рд╣реЛрдЧреАред рдпрд╣ рдбреЙрдХрд░рдлрд╛рдЗрд▓, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд▓рд┐рдП рднреА рд╕рд╣реА рдЬрдЧрд╣ рд╣реЛрдЧреА

рдЗрд╕реЗ рдкрд╣рд▓реЗ zreigz/ рдХреЗ рддрд╣рдд рдПрдХ рдирд┐рдЬреА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдПрдВ рдФрд░ рдЕрдВрддрддрдГ рд╣рдо рдЙрд╕ рдХреЛрдб рдХреЛ рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рдорд░реНрдЬ рдХрд░ рджреЗрдВрдЧреЗред

рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд╕реНрдерд╛рди рдореЗрдВ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдФрд░ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЬрд╛рддрд╛ рд╣реИред

рдЕрд╕рд▓реА рдЕрд╕рд╛рдЗрдиреА рд╣реИ @zreigz

рд╣рд╛рдБ рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБред рдореИрдВ рдпрд╣ рдХрд░реВрдВрдЧрд╛ред рдЕрдЧрд▓реЗ рд╣рдлреНрддреЗ (рд╕реЛрдорд╡рд╛рд░, рдордВрдЧрд▓рд╡рд╛рд░) рдореИрдВ рд╕рдореНрдореЗрд▓рди рдореЗрдВ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдмреБрдзрд╡рд╛рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реВрдВрдЧрд╛ред

@luxas рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдХреБрдмреЗрджрдо рдФрд░ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕-рд╕реАрдПрдирдЖрдИ рдкреИрдХреЗрдЬ рдХреИрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдЧрд░ рдореБрдЭреЗ рдЗрд╕реЗ рдореМрдЬреВрджрд╛ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдирд╡реАрдирддрдо рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП) рдпрд╛ рдХреЗрд╡рд▓ рднрдВрдбрд╛рд░ рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ? рд╕реАрдЖрдИ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдмрд╕ рд╣рдореЗрдВ рд░рд┐рд▓реАрдЬ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ?

рд╣рд╛рдп рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА kubeadm init рдХреЗ рдмрд╛рдж рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реЛ рд░рд╣реА рд╣реИ, рдореБрдЭреЗ DNS рдкрд░ 0/3 рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, DNS рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ

рдкреНрд░рддреНрдпреЗрдХ 2.0s: kubectl get pods --all-namespaces рд╢реБрдХреНрд░ 16 рджрд┐рд╕рдВрдмрд░ 17:00:50 2016

рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдо рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЖрдпреБ
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдбрдореА-2088944543-17sey 1/1 рд░рдирд┐рдВрдЧ 0 11m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо etcd-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 2 12m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдПрдкрд┐рд╕рд░реНрд╡рд░-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 4 12m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 2 11m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдбрд┐рд╕реНрдХрд╡рд░реА-1150918428-рдПрдо506рдбрдмреНрд▓реНрдпреВ 1/1 рд░рдирд┐рдВрдЧ 0 11рдореА
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕-654381707-рд╡реНрдпреБрдЗрдЬреНрдо 0/3 рдХрдВрдЯреЗрдирд░ 0 11 рдореАрдЯрд░ рдмрдирд╛рдирд╛
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА-tuw6u 0/1 рдХреНрд░реИрд╢рд▓реВрдкрдмреИрдХрдСрдлрд╝ 6 11m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 2 10рдореА

рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА
root@8dd8c92c6c38 :/# kubectl apply -f calico.yaml
рдкрде "calico.yaml" рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ
root@8dd8c92c6c38 :/# kubectl create -f calico.yaml
рдкрде "calico.yaml" рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ
root@8dd8c92c6c38 :/# kubectl рд▓рд╛рдЧреВ -f kube-flannel.yml
рдкрде "kube-flannel.yml" рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ

root@8dd8c92c6c38 :/# kubectl apply -f https://git.io/weave-kube
рдбреЗрдореЛрдВрд╕реЗрдЯ "рд╡реАрд╡-рдиреЗрдЯ" рдмрдирд╛рдпрд╛ рдЧрдпрд╛
root@8dd8c92c6c38 :/# kubectl рдкреЙрдбреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ --рдСрд▓-рдиреЗрдорд╕реНрдкреЗрд╕
рдиреЗрдорд╕реНрдкреЗрд╕ рдирд╛рдо рддреИрдпрд╛рд░ рд╕реНрдерд┐рддрд┐ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИ рдЖрдпреБ
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдбрдореА-2088944543-17sey 1/1 рд░рдирд┐рдВрдЧ 0 46m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо etcd-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 2 46m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдПрдкрд┐рд╕рд░реНрд╡рд░-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 4 46m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдХрдВрдЯреНрд░реЛрд▓рд░-рдореИрдиреЗрдЬрд░-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 2 45m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдбрд┐рд╕реНрдХрд╡рд░реА-1150918428-9m6rr 0/1 рд▓рдВрдмрд┐рдд 0 3m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕-654381707-рд╡реНрдпреБрдЗрдЬреНрдо 0/3 рдХрдВрдЯреЗрдирд░ 0 45 рдореАрдЯрд░ рдмрдирд╛рдирд╛
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА-tuw6u 0/1 рдХреНрд░реИрд╢рд▓реВрдкрдмреИрдХрдСрдлрд╝ 13 45m
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рдХреНрдпреВрдм-рд╢реЗрдбреНрдпреВрд▓рд░-8dd8c92c6c38 1/1 рд░рдирд┐рдВрдЧ 2 44рдореА
рдХреНрдпреВрдм-рд╕рд┐рд╕реНрдЯрдо рд╡реЗрд╡-рдиреЗрдЯ-iv0bc 0/2 рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдирд╛ 0 49s
рдЬрд╛рдирдХрд╛рд░реА: 1 рдкреВрд░реНрдг рд╡рд╕реНрддреБ (рдУрдВ) рдХреЛ рдкреЙрдбреНрд╕ рд╕реВрдЪреА рдореЗрдВ рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕ --рд╢реЛ-рдСрд▓ред

рд╣рд╛рдп рдлрд┐рд░ рд╕реЗ @zreigz
рдЕрдм рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдФрд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ - рдореИрдВ рдЗрд╕реЗ рд▓рдЧрднрдЧ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдХрд┐ docker vfs рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдЪреБрдирддрд╛ рд╣реИ (рд╢рд╛рдпрдж рдЗрд╕рд▓рд┐рдП рдХрд┐ рдпрд╣ aufs рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ aufs рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ? рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВ рдКрдкрд░ рдореИрдВ рдмрд╛рд╣рд░реА рдбреЙрдХрдЯрд░ .sock рдХреЛ рдЖрдВрддрд░рд┐рдХ рдбреЙрдХрдЯрд░ рдореЗрдВ рдорд╛рдЙрдВрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдФрдлреНрд╕ рдХреЗ рд╕рд╛рде рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛ?рдЕрдЧрд░ рдореИрдВ рдХрд░рддрд╛ рд╣реВрдВ
docker info рдореЗрд░реА рд╣реЛрд╕реНрдЯ рдорд╢реАрди рдкрд░ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ aufs рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдЪрд▓рд╛ рд░рд╣рд╛ рд╣реИред - рдЬрдмрдХрд┐ рдЕрдЧрд░ рдореИрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдбреЙрдХрд░ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ docker info рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ vfs рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред
рджреМрдбрд╝рддреЗ рд╕рдордп рдореБрдЭреЗ рдирд┐рдореНрди рд╕рдорд╕реНрдпрд╛ рдХреНрдпреЛрдВ рдЖрддреА рд╣реИ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░
kubeadm init

root<strong i="13">@f50f087baa83</strong>:/# kubeadm init
[kubeadm] WARNING: kubeadm is in alpha, please do not use it for production clusters.
[preflight] Running pre-flight checks
[preflight] The system verification failed. Printing the output from the verification:
OS: Linux
KERNEL_VERSION: 4.4.0-43-generic
CONFIG_NAMESPACES: enabled
CONFIG_NET_NS: enabled
CONFIG_PID_NS: enabled
CONFIG_IPC_NS: enabled
CONFIG_UTS_NS: enabled
CONFIG_CGROUPS: enabled
CONFIG_CGROUP_CPUACCT: enabled
CONFIG_CGROUP_DEVICE: enabled
CONFIG_CGROUP_FREEZER: enabled
CONFIG_CGROUP_SCHED: enabled
CONFIG_CPUSETS: enabled
CONFIG_MEMCG: enabled
CONFIG_INET: enabled
CONFIG_EXT4_FS: enabled
CONFIG_PROC_FS: enabled
CONFIG_NETFILTER_XT_TARGET_REDIRECT: enabled (as module)
CONFIG_NETFILTER_XT_MATCH_COMMENT: enabled (as module)
CONFIG_OVERLAY_FS: enabled (as module)
CONFIG_AUFS_FS: enabled (as module)
CONFIG_BLK_DEV_DM: enabled
CGROUPS_CPU: enabled
CGROUPS_CPUACCT: enabled
CGROUPS_CPUSET: enabled
CGROUPS_DEVICES: enabled
CGROUPS_FREEZER: enabled
CGROUPS_MEMORY: enabled
DOCKER_VERSION: 1.12.1
DOCKER_GRAPH_DRIVER: vfs
[preflight] Some fatal errors occurred:
    unsupported graph driver: vfs
[preflight] If you know what you are doing, you can skip pre-flight checks with `--skip-preflight-checks`
root<strong i="14">@f50f087baa83</strong>:/# 

рдереЛрдбрд╝рд╛ рдФрд░ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реАред
рдореИрдВрдиреЗ рд╣реЛрд╕реНрдЯ рдкрд░ рдбреЙрдХрдЯрд░ рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ "рдУрд╡рд░рд▓реЗ" рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдлрд┐рд░ рдбреЙрдХрдЯрд░ рдХреЗ рдЕрдВрджрд░ рдбреЙрдХрдЯрд░ рдиреЗ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдФрдлреНрд╕ рдХреЛ рдЪреБрдирд╛ рдФрд░ рдореИрдВрдиреЗ "рдкреНрд░реА-рдлреНрд▓рд╛рдЗрдЯ рдЪреЗрдХ" рдкрд╛рд╕ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдЕрдВрджрд░ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ
[apiclient] Created API client, waiting for the control plane to become ready

рдХреБрдЫ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдгреЛрдВ рдкрд░ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдЬрдм рдЗрд╕реЗ /sbin/init рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ docker рдЙрд╕реА рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рдирд╣реАрдВ рдЪреБрди рд░рд╣рд╛ рдерд╛
рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбреЙрдХрд░ рдЫрд╡рд┐ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЙрд╕реА рдбреНрд░рд╛рдЗрд╡рд░ рдХреЛ рд╣реЛрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ):
sudo docker run -it --privileged=true -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock kubeadm_docker /sbin/init

рдЕрдЧрд░ рдореИрдВрдиреЗ рдЗрд╕реЗ /sbin/init рдмрд┐рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рдПрдХ рдбрд┐рдорди рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ:
sudo docker run -it --privileged=true --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock kubeadm_docker /bin/bash рддрдм рдбреЙрдХрдЯрд░ рд╣реЛрд╕реНрдЯ рдХреЗ рд╕рдорд╛рди рд╕реНрдЯреЛрд░реЗрдЬ рдбреНрд░рд╛рдЗрд╡рд░ рдЪреБрди рд░рд╣рд╛ рдерд╛ (рд▓реЗрдХрд┐рди рдЕрдм systemctrl рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛)

рдХреБрдЫ рдФрд░ рдЕрдкрдбреЗрдЯ:

рдЕрдм рдореИрдВ рдЗрд╕ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдХреБрдмреЗрджрдо-рдЗрди-рдбреЙрдХрд░-рдХрдВрдЯреЗрдирд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

FROM ubuntu:xenial-20161213

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update -qq

RUN apt-get install -y \
    apt-transport-https \
    apt-utils \
    ca-certificates \
    curl \
    dialog \
    python \
    daemon \
    vim \
    jq \
    linux-image-$(uname -r)

# remove unwanted systemd services
RUN for i in /lib/systemd/system/sysinit.target.wants/*; do [ "${i##*/}" = "systemd-tmpfiles-setup.service" ] || rm -f "$i"; done; \
  rm -f /lib/systemd/system/multi-user.target.wants/*;\
  rm -f /etc/systemd/system/*.wants/*;\
  rm -f /lib/systemd/system/local-fs.target.wants/*; \
  rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
  rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
  rm -f /lib/systemd/system/basic.target.wants/*;\
  rm -f /lib/systemd/system/anaconda.target.wants/*;

# install docker (after removing unwanted systemd)
RUN apt-get install -y \
    docker.io

RUN echo "Add Kubernetes repo..."
RUN sh -c 'curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -'
RUN sh -c 'echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list'

RUN echo "Installing Kubernetes requirements..."
RUN apt-get update -y && apt-get install -y \
  kubelet \
  kubernetes-cni \
  kubectl

RUN echo "Installing Kubeadm - this will fail at post-install but that doesn't matter"
RUN apt-get install -y \
  kubeadm; exit 0

# Create volume for docker
VOLUME /var/lib/docker

рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд╛рдг рдХрд░рддрд╛ рд╣реВрдВ: docker build -t kubeadm_docker .

рдФрд░ рдлрд┐рд░ рдЪрд▓рд╛рдПрдБ:

docker run -it --privileged=true --name=master -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro kubeadm_docker /sbin/init

рдХреБрдЫ (10-15) рд╕реЗрдХрдВрдб рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ systemd рдФрд░ docker рдКрдкрд░ рдФрд░ рдЪрд▓ рди рдЬрд╛рдП

рдлрд┐рд░ рдореИрдВ рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХреБрдмреЗрджрдо рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ:
docker exec -it master kubeadm init --token=acbec6.2852dff7cb569aa0

рдЬрдм рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рджреВрд╕рд░рд╛ "рдХрд╛рд░реНрдпрдХрд░реНрддрд╛" рдиреЛрдб рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ:

docker run -it --privileged=true --name=node -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro kubeadm_docker /sbin/init
рдФрд░ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рдЧреБрд░реБ рд╕реЗ рдЬреБрдбрд╝реЗрдВ:

docker exec -it edge kubeadm join --token=acbec6.2852dff7cb569aa0 172.17.0.2

рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбреЙрдХрд░ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдлрд╝реИрд╕ рдФрд░ рдХреНрд░реИрд╢рд▓реВрдкрдмреИрдХрдСрдлрд╝ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдКрдкрд░ рдбреЙрдХрдЯрд░ рдЪрд▓рд╛рддреЗ рд╕рдордп --net=host рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдФрд░ рд╕рднреА рдкреЙрдб рдареАрдХ рдЖ рд░рд╣реЗ рд╣реИрдВ - рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЕрдкрдиреЗ рдЖрдИрдкреА рдХреЗ рд╕рд╛рде рдбреЙрдХрдЯрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрдВрдЯреЗрдирд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА: рдПрд╕

рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рднреА рд╣реЛрд╕реНрдЯ рдкрд░ рдЙрд╕реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдбреЙрдХрдЯрд░ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА: -v /var/run/docker.sock:/var/run/docker.sock рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдХрд╛рдо рдХрднреА рдирд╣реАрдВ рдорд┐рд▓рд╛ рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдбреЙрдХрдЯрд░ рдХреЛ рд╕рд┐рд╕реНрдЯрдордб рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпрд╣ рдЬреБрд░реНрд░рд╛рдм рдирд╣реАрдВ рдЙрдард╛рддрд╛ (рдпрд╛ рдРрд╕рд╛ рдХреБрдЫ рд╡рд╣)ред

рдзрдиреНрдпрд╡рд╛рдж @andersla!
рдХреНрдпрд╛ рдЖрдк рдкреЗрд╕реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐рд╕рдХреЗ рд╕рд╛рде рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ?

рдЖрдкрдХреА рд░реБрдЪрд┐ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @luxas !

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ journalctl -xeu kubelet рдореЗрдВ рдХреЛрдИ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИ

рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореБрдЭреЗ рдмрд╕ рдЗрддрдирд╛ рд╣реА рдкрддрд╛ рдЪрд▓рд╛ (рдХрдИ рдмрд╛рд░ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛) рдореИрдВ рдкреВрд░реНрдг рд▓реЙрдЧ рднреА рд╕рдВрд▓рдЧреНрди рдХрд░рддрд╛ рд╣реВрдВред

Jan 09 14:40:02 1355b98bf8c7 kubelet[244]: I0109 14:40:02.690862     244 docker_manager.go:2524] checking backoff for container "kube-proxy" in pod "kube-proxy-7886l"
Jan 09 14:40:03 1355b98bf8c7 kubelet[244]: I0109 14:40:03.984818     244 docker_manager.go:2538] Back-off 20s restarting failed container=kube-proxy pod=kube-proxy-7886l_kube-system(71a1e950-d679-11e6-a9f7-02429d4c0f01)
Jan 09 14:40:03 1355b98bf8c7 kubelet[244]: E0109 14:40:03.984833     244 pod_workers.go:184] Error syncing pod 71a1e950-d679-11e6-a9f7-02429d4c0f01, skipping: failed to "StartContainer" for "kube-proxy" with CrashLoopBackOff: "Back-off 20s restarting failed container=kube-proxy pod=kube-proxy-7886l_kube-system(71a1e950-d679-11e6-a9f7-02429d4c0f01)"

рдкреВрд░рд╛ рд▓реЙрдЧ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд╢рд┐рдХрд╛рдпрдд рдХрд░рддрд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдмреБрдирд╛рдИ рд╢реБрд░реВ рдирд╣реАрдВ рдХреА рд╣реИред

рдпрд╣рд╛рдБ kubectl describe pod -n kube-system kube-proxy-w0ng5 рд╕реЗ рд▓реЙрдЧ рдЗрди рд╣реИ

Name:       kube-proxy-w0ng5
Namespace:  kube-system
Node:       3551807cba77/172.17.0.2
Start Time: Tue, 10 Jan 2017 18:03:06 +0000
Labels:     component=kube-proxy
        k8s-app=kube-proxy
        kubernetes.io/cluster-service=true
        name=kube-proxy
        tier=node
Status:     Running
IP:     172.17.0.2
Controllers:    DaemonSet/kube-proxy
Containers:
  kube-proxy:
    Container ID:   docker://dcc2bc0b50a2477b72d451b776f35e327f1faf09e3cddb25d5609569c6f2a242
    Image:      gcr.io/google_containers/kube-proxy-amd64:v1.5.1
    Image ID:       docker-pullable://gcr.io/google_containers/kube-proxy-amd64<strong i="7">@sha256</strong>:3b82b2e0862b3c0ece915de29a5a53634c9b0a73140340f232533c645decbd4b
    Port:       
    Command:
      kube-proxy
      --kubeconfig=/run/kubeconfig
    State:      Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Tue, 10 Jan 2017 18:08:48 +0000
      Finished:     Tue, 10 Jan 2017 18:08:48 +0000
    Ready:      False
    Restart Count:  6
    Volume Mounts:
      /run/kubeconfig from kubeconfig (rw)
      /var/run/dbus from dbus (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-g0ft5 (ro)
    Environment Variables:  <none>
Conditions:
  Type      Status
  Initialized   True 
  Ready     False 
  PodScheduled  True 
Volumes:
  kubeconfig:
    Type:   HostPath (bare host directory volume)
    Path:   /etc/kubernetes/kubelet.conf
  dbus:
    Type:   HostPath (bare host directory volume)
    Path:   /var/run/dbus
  default-token-g0ft5:
    Type:   Secret (a volume populated by a Secret)
    SecretName: default-token-g0ft5
QoS Class:  BestEffort
Tolerations:    dedicated=master:NoSchedule
Events:
  FirstSeen LastSeen    Count   From            SubObjectPath           Type        Reason  Message
  --------- --------    -----   ----            -------------           --------    ------  -------
  9m        9m      1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal      Pullingpulling image "gcr.io/google_containers/kube-proxy-amd64:v1.5.1"
  9m        9m      1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal      CreatedCreated container with docker id ecf446de342a; Security:[seccomp=unconfined]
  9m        9m      1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal      StartedStarted container with docker id ecf446de342a
  9m        9m      1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal      Pulled  Successfully pulled image "gcr.io/google_containers/kube-proxy-amd64:v1.5.1"
  9m        9m      1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal      CreatedCreated container with docker id f562fb667a64; Security:[seccomp=unconfined]
  9m        9m      1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal      StartedStarted container with docker id f562fb667a64
  9m        9m      2   {kubelet 3551807cba77}                  Warning     FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "kube-proxy" with CrashLoopBackOff: "Back-off 10s restarting failed container=kube-proxy pod=kube-proxy-w0ng5_kube-system(09c4f65d-d75f-11e6-814c-0242255c9a68)"

  9m    9m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Started     Started container with docker id 1a7d7d4f682b
  9m    9m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Created     Created container with docker id 1a7d7d4f682b; Security:[seccomp=unconfined]
  9m    9m  2   {kubelet 3551807cba77}                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "kube-proxy" with CrashLoopBackOff: "Back-off 20s restarting failed container=kube-proxy pod=kube-proxy-w0ng5_kube-system(09c4f65d-d75f-11e6-814c-0242255c9a68)"

  8m    8m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Started     Started container with docker id 89bdf4ba7e0b
  8m    8m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Created     Created container with docker id 89bdf4ba7e0b; Security:[seccomp=unconfined]
  8m    8m  3   {kubelet 3551807cba77}                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "kube-proxy" with CrashLoopBackOff: "Back-off 40s restarting failed container=kube-proxy pod=kube-proxy-w0ng5_kube-system(09c4f65d-d75f-11e6-814c-0242255c9a68)"

  8m    8m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Created     Created container with docker id f2b7a2b5078d; Security:[seccomp=unconfined]
  8m    8m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Started     Started container with docker id f2b7a2b5078d
  8m    7m  6   {kubelet 3551807cba77}                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "kube-proxy" with CrashLoopBackOff: "Back-off 1m20s restarting failed container=kube-proxy pod=kube-proxy-w0ng5_kube-system(09c4f65d-d75f-11e6-814c-0242255c9a68)"

  6m    6m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Created     Created container with docker id 28deaf41d920; Security:[seccomp=unconfined]
  6m    6m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Started     Started container with docker id 28deaf41d920
  6m    4m  12  {kubelet 3551807cba77}                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "kube-proxy" with CrashLoopBackOff: "Back-off 2m40s restarting failed container=kube-proxy pod=kube-proxy-w0ng5_kube-system(09c4f65d-d75f-11e6-814c-0242255c9a68)"

  9m    4m  6   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Pulled      Container image "gcr.io/google_containers/kube-proxy-amd64:v1.5.1" already present on machine
  4m    4m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Created     Created container with docker id dcc2bc0b50a2; Security:[seccomp=unconfined]
  4m    4m  1   {kubelet 3551807cba77}  spec.containers{kube-proxy} Normal  Started     Started container with docker id dcc2bc0b50a2
  9m    10s 43  {kubelet 3551807cba77}  spec.containers{kube-proxy} Warning BackOff     Back-off restarting failed docker container
  4m    10s 18  {kubelet 3551807cba77}                  Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "kube-proxy" with CrashLoopBackOff: "Back-off 5m0s restarting failed container=kube-proxy pod=kube-proxy-w0ng5_kube-system(09c4f65d-d75f-11e6-814c-0242255c9a68)"

рд╣рд╛рдБ, рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ _that_ рдпрд╣ рдХреНрд░реИрд╢рд▓реВрдкрд┐рдВрдЧ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдЙрджрд╛рд╣рд░рдг рджреЗ рд╕рдХрддреЗ рд╣реИрдВ kubectl -n kube-system logs kube-proxy-w0ng5 ?
рддреЛ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рд░рдг рджреЗрдЦрддреЗ рд╣реИрдВ _why_ :smile:

рдЕрд░реЗ рдпрд╣ рд╢рд╛рдирджрд╛рд░ рд╣реИ :)
root@3551807cba77 :/# kubectl -n kube-system logs kube-proxy-w0ng5

I0110 18:29:01.705993       1 server.go:215] Using iptables Proxier.
W0110 18:29:01.706933       1 proxier.go:254] clusterCIDR not specified, unable to distinguish between internal and external traffic
I0110 18:29:01.706947       1 server.go:227] Tearing down userspace rules.
I0110 18:29:01.712693       1 conntrack.go:81] Set sysctl 'net/netfilter/nf_conntrack_max' to 262144
I0110 18:29:01.712927       1 conntrack.go:66] Setting conntrack hashsize to 65536
write /sys/module/nf_conntrack/parameters/hashsize: operation not supported

рдореИрдВ рдЗрд╕реЗ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ: --conntrack-max-per-core=0 рдФрд░ рдлрд┐рд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ред рдПрдХ 0-рд╡реИрд▓ nf_conntrack_max рдХреЛ рдкреБрди: рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЬреИрд╕рд╛ рд╣реИ (65536) рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рддрд░рд╣ рдкреНрд░рд╛рд░рдВрдн рдкреИрд░рд╛рдореАрдЯрд░ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВ:

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рджрд░реНрдЬ рдХрд░реЗрдВ:
docker exec -it master bash

рдлрд┐рд░ рдлрд┐рдХреНрд╕ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:

kubectl -n kube-system get ds -l 'component=kube-proxy' -o json | jq '.items[0].spec.template.spec.containers[0].command |= .+ ["--conntrack-max-per-core=0"]' | kubectl apply -f - && kubectl -n kube-system delete pods -l 'component=kube-proxy'

рдЕрдм рдореБрдЭреЗ рд╡реЗрд╡ рдкрд░ рдХреНрд░реИрд╢рд▓реВрдк рдорд┐рд▓рддрд╛ рд╣реИ, рдЬрдм рдореИрдВ рдмрд╛рдж рдореЗрдВ kubectl apply -f weave.yaml рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдмреБрдирд╛рдИ рдкреЙрдб рд╕реЗ рд▓реЙрдЧ рдЖрдЙрдЯрдкреБрдЯ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реИ:
/proc/sys/net/bridge/bridge-nf-call-iptables not found
рдореИрдВрдиреЗ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдкреИрд░рд╛рдореАрдЯрд░ --proxy-mode=userspace рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рднреА рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдоред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рд╕реЗ рдмреБрдирд╛рдИ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЬрд╛рдПрдЧреА: https://github.com/weaveworks/weave/pull/2659

@andersla рд╣рд╛рдБ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ рд╣реИред рдХреНрдпрд╛ рдЖрдк HEAD рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк luxas/weave-(kube|npc):v1.9.0-alpha.5 рдЫрд╡рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ HEAD~ish рд╕реЗ рд╣реИрдВред
рдореБрдЭреЗ рдмрддрд╛рдПрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреГрдкрдпрд╛ рдпрд╣рд╛рдВ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЕрднреА рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рд╢реЗрд▓ рдХрдорд╛рдВрдб, рдбреЙрдХрд░рдлрд╛рдЗрд▓, рдЕрдиреНрдп рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЖрджрд┐) рддрд╛рдХрд┐ рдЕрдиреНрдп рдЗрд╕рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХреЗрдВред

рдореИрдВрдиреЗ рдмреБрдирдХрд░/рдмреБрдирд╛рдИ-рдХреБрдмреЗ рд╕реЗ рдирд╡реАрдирддрдо рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

рдореИрдВрдиреЗ рдирд╡реАрдирддрдо рдпрдо-рдЯреЗрдореНрдкрд▓реЗрдЯ https://github.com/weaveworks/weave/blob/master/prog/weave-kube/weave-daemonset.yaml рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рдиреЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ (рдпрд╣ рдХрдВрдЯреЗрдирд░ рдХреНрд░рд┐рдПрдЯрд┐рдВрдЧ рдореЗрдВ рд╕реНрдЯрдЪ рд╣реИред рдмреБрдирд╛рдИ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдХреНрдпреВрдмрд▓реЗрдЯ рд╕реЗ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИ:

an 15 16:14:30 7c12205804da kubelet[540]: I0115 16:14:30.443327     540 operation_executor.go:917] MountVolume.SetUp succeeded for volume "kubernetes.io/secret/c23fb73d-db39-11e6-b84d-0242b1ac1840-default-token-142vd" (spec.Name: "default-token-142vd") pod "c23fb73d-db39-11e6-b84d-0242b1ac1840" (UID: "c23fb73d-db39-11e6-b84d-0242b1ac1840").
Jan 15 16:14:31 7c12205804da kubelet[540]: E0115 16:14:31.381741     540 docker_manager.go:373] NetworkPlugin cni failed on the status hook for pod 'kube-dns-2924299975-9gjcg' - Unexpected command output Device "eth0" does not exist.
Jan 15 16:14:31 7c12205804da kubelet[540]:  with error: exit status 1

рдЕрдЧрд░ рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рд╢реБрд░реВ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рджреВрд╕рд░реЗ рдиреЛрдб рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, рддреЛ рдЬрдм рдореИрдВрдиреЗ рдмреБрдирд╛рдИ рд▓рд╛рдЧреВ рдХреА рддреЛ рдХреБрдмрдбрди рдареАрдХ рд╣реЛ рдЧрдПред yaml

рдореИрдВрдиреЗ рдПрдХ рд╡реИрдЧреНрд░рд╛рдВрдЯ рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдкрд░ рдирд╡реАрдирддрдо рд╡реЗрд╡-рдХреНрдпреВрдм рдХреЗ рд╕рд╛рде рд╡реАрд╡.рдпрд╛рдорд▓ рдХрд╛ рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛, рди рдХрд┐ рдореЗрд░реЗ рдбреЙрдХрдЯрд░-рдкреНрд░рдпреЛрдЧ рдореЗрдВ рдФрд░ рдлрд┐рд░ рдпрд╣ рд╕рдм рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рдпрд╣ рд╡рд╣ рдмреБрдирд╛рдИ рд╣реИред yaml рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВрдиреЗ kubectl apply -f weave.yaml

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: weave-net
  namespace: kube-system
spec:
  template:
    metadata:
      labels:
        name: weave-net
      annotations:
        scheduler.alpha.kubernetes.io/tolerations: |
          [
            {
              "key": "dedicated",
              "operator": "Equal",
              "value": "master",
              "effect": "NoSchedule"
            }
          ]
    spec:
      hostNetwork: true
      hostPID: true
      containers:
        - name: weave
          image: weaveworks/weave-kube:latest
          imagePullPolicy: Always
          command:
            - /home/weave/launch.sh
          livenessProbe:
            initialDelaySeconds: 30
            httpGet:
              host: 127.0.0.1
              path: /status
              port: 6784
          securityContext:
            privileged: true
          volumeMounts:
            - name: weavedb
              mountPath: /weavedb
            - name: cni-bin
              mountPath: /host/opt
            - name: cni-bin2
              mountPath: /host/home
            - name: cni-conf
              mountPath: /host/etc
            - name: dbus
              mountPath: /host/var/lib/dbus
          resources:
            requests:
              cpu: 10m
        - name: weave-npc
          image: weaveworks/weave-npc:latest
          imagePullPolicy: Always
          resources:
            requests:
              cpu: 10m
          securityContext:
            privileged: true
      restartPolicy: Always
      volumes:
        - name: weavedb
          emptyDir: {}
        - name: cni-bin
          hostPath:
            path: /opt
        - name: cni-bin2
          hostPath:
            path: /home
        - name: cni-conf
          hostPath:
            path: /etc
        - name: dbus
          hostPath:
            path: /var/lib/dbus

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореИрдВ рдЗрд╕ рдзрд╛рдЧреЗ рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ рдФрд░ рдпрд╣ рдЪрдЯреНрдЯрд╛рдиреЛрдВ рдХреЛ рддреЛрдбрд╝ рд░рд╣рд╛ рд╣реИ! рдорд╣рд╛рди рд╕рд╛рдорд╛рдиред

рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рд░реЗрдкреЛ рдХреЗ рдЦрд┐рд▓рд╛рдл рд╕реАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ (рдЬреЛ рдХрд╛рдлреА рдЬрдЯрд┐рд▓ рд╣реИ, рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ)ред рд╕реАрдЖрдИ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪрд╛рд░реНрдЯ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реЗрд▓реНрдо/рдЯрд┐рд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреНрдпрд╛ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ рд╣реИ, рдпрд╛ рдЗрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕реБрдЭрд╛рд╡ рд╣реИрдВ? рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЯрд┐рд▓рд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдмрд░реНрдлрд╝рдмрд╛рд░реА рдХрд░рдиреЗ рд▓рдЧрддрд╛ рд╣реИ:

root<strong i="7">@JINKITNIX05</strong>:~/openstack-helm# kubectl logs tiller-deploy-3299276078-6kdzw -n kube-system
Error from server (BadRequest): the server rejected our request for an unknown reason (get pods tiller-deploy-3299276078-6kdzw)
root<strong i="8">@JINKITNIX05</strong>:~/openstack-helm# 

рдореИрдВ рдЕрдиреНрдп рдПрд╕рдбреАрдПрди рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рдо рдЕрдм рддрдХ рдХреЗрд▓рд┐рдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ L3 рд╣реИрдХреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реАрд╡ рдмреЗрд╣рддрд░ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ L2 рд╣реИ) ... рдореИрдВ рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдЬреЛ рдХреБрдЫ рднреА рд╣рдореЗрдВ рдЯрд┐рд▓рд░ рдореБрджреНрджреЗ рд╕реЗ рдЖрдЧреЗ рд▓реЗ рдЬрд╛рдПред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рд▓рд░ рдирд╛рдЦреБрд╢ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджрд┐рди рдХреЗ рдЕрдВрдд рдореЗрдВ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 127.0.0.1 рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рддрд╛ рд╣реИ ... рдФрд░ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдкрд┐рдЫрд▓реЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдЕрдиреНрдп рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрддреА рд╣реИрдВред рдХреЛрдИ рдЗрдирдкреБрдЯ рдЕрджреНрднреБрдд рд╣реЛрдЧрд╛ред рдлрд┐рд░ рд╕реЗ, рдЪреАрдЬреЛрдВ рдХреЛ рд╣реИрдХ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛ рд╕рд╣рд╛рд░рд╛! рдзрдиреНрдпрд╡рд╛рдж!!

рдирдорд╕реНрддреЗ! рдмрдврд╝рд┐рдпрд╛ рд╣реИ рдХрд┐ рд╣рдо рдФрд░ рд▓реЛрдЧ рд╣реИрдВ рдЬреЛ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореБрдЭреЗ рдХреИрд▓рд┐рдХреЛ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдирд╣реАрдВ рд╣реИред рдХреНрд▓рд╛рдЙрдб рдкрд░ рд╣рдо рд╡реАрд╡ рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ рддрд╛рдХрд┐ рдореИрдВ рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдЧреЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдирд╣реАрдВ рд╣реИ, рдЬрдм рдореИрдВ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдмреБрдирд╛рдИ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред

рдЕрдм рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рдмреБрдирд╛рдИ рдкрд╣рд▓реЗ рд╕реЗ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИ....

kubectl apply -f https://git.io/weave-kube

..рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдЖ рд░рд╣реА рд╣реИ, рдХрдВрдЯреЗрдирд░ рдХреНрд░рд┐рдПрдЯрд┐рдВрдЧ рдореЗрдВ рдлрдВрд╕ рдЧрдпрд╛ рд╣реИ:

root<strong i="9">@18a7d1ec5124</strong>:/# kubectl get pods --all-namespaces
NAMESPACE     NAME                                   READY     STATUS              RESTARTS   AGE
kube-system   dummy-2088944543-pvvdx                 1/1       Running             0          5m
kube-system   etcd-18a7d1ec5124                      1/1       Running             0          4m
kube-system   kube-apiserver-18a7d1ec5124            1/1       Running             2          5m
kube-system   kube-controller-manager-18a7d1ec5124   1/1       Running             0          4m
kube-system   kube-discovery-1769846148-6tv4l        1/1       Running             0          5m
kube-system   kube-dns-2924299975-4608d              0/4       ContainerCreating   0          5m
kube-system   kube-proxy-k0stq                       1/1       Running             0          4m
kube-system   kube-proxy-tnm8h                       1/1       Running             0          4m
kube-system   kube-scheduler-18a7d1ec5124            1/1       Running             0          4m
kube-system   weave-net-mff6t                        2/2       Running             0          3m
kube-system   weave-net-t7zcl                        2/2       Running             0          3m

рдФрд░ рдмреБрдирд╛рдИ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
Feb 04 18:06:57 18a7d1ec5124 kubelet[252]: E0204 18:06:57.125434 252 pod_workers.go:184] Error syncing pod 7dc68091-eb04-11e6-a321-02425e578ba1, skipping: failed to "SetupNetwork" for "kube-dns-2924299975-4608d_kube-system" with SetupNetworkError: "Failed to setup network for pod \"kube-dns-2924299975-4608d_kube-system(7dc68091-eb04-11e6-a321-02425e578ba1)\" using network plugins \"cni\": cni config unintialized; Skipping pod"

рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдмрд╛рд░ рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ:

Feb 04 18:06:59 18a7d1ec5124 kubelet[252]: E0204 18:06:59.615375 252 docker_manager.go:373] NetworkPlugin cni failed on the status hook for pod 'kube-dns-2924299975-4608d' - Unexpected command output Device "eth0" does not exist. Feb 04 18:06:59 18a7d1ec5124 kubelet[252]: with error: exit status 1

рдЕрдЧрд░ рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд░реВрдк рдореЗрдВ рдлрд▓рд╛рд▓реИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

docker exec -it master bash

curl -sSL "https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true" | kubectl create -f -

рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдлрд▓рд╛рд▓реИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╣рд╛рдБ рдкреВрд░рд╛ рд╕реЗрдЯрдЕрдк рд╣реИ:

рдбреЙрдХрд░рдлрд╛рдЗрд▓:

FROM ubuntu:xenial-20161213

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update -qq

RUN apt-get install -y \
    apt-transport-https \
    apt-utils \
    ca-certificates \
    curl \
    dialog \
    python \
    daemon \
    vim \
    jq

# remove unwanted systemd services
RUN for i in /lib/systemd/system/sysinit.target.wants/*; do [ "${i##*/}" = "systemd-tmpfiles-setup.service" ] || rm -f "$i"; done; \
  rm -f /lib/systemd/system/multi-user.target.wants/*;\
  rm -f /etc/systemd/system/*.wants/*;\
  rm -f /lib/systemd/system/local-fs.target.wants/*; \
  rm -f /lib/systemd/system/sockets.target.wants/*udev*; \
  rm -f /lib/systemd/system/sockets.target.wants/*initctl*; \
  rm -f /lib/systemd/system/basic.target.wants/*;\
  rm -f /lib/systemd/system/anaconda.target.wants/*;

# install docker (after removing unwanted systemd)
RUN apt-get install -y \
    docker.io

RUN echo "Add Kubernetes repo..."
RUN sh -c 'curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -'
RUN sh -c 'echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list'

RUN echo "Installing Kubernetes requirements..."
RUN apt-get update -y && apt-get install -y \
  kubelet \
  kubernetes-cni \
  kubectl

RUN echo "Installing Kubeadm - this will fail at post-install but that doesn't matter"
RUN apt-get install -y \
  kubeadm; exit 0

# Create volume for docker
VOLUME /var/lib/docker

рдЗрд╕рдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдБ:
docker build -t kubeadm_docker .

рдФрд░ рдлрд┐рд░ рдЪрд▓рд╛рдПрдБ:
docker run -it --privileged=true --name=master -h master -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro kubeadm_docker /sbin/init

рдХреБрдЫ (10-15) рд╕реЗрдХрдВрдб рддрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ рдЬрдм рддрдХ рдХрд┐ systemd рдФрд░ docker рдКрдкрд░ рдФрд░ рдЪрд▓ рди рдЬрд╛рдП

рдлрд┐рд░ рдореИрдВ рдЪрд▓ рд░рд╣реЗ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рдХреБрдмреЗрджрдо рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ:
docker exec -it master kubeadm init --skip-preflight-checks --token=acbec6.2852dff7cb569aa0

рдЬрдм рдЗрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдореИрдВ рджреВрд╕рд░рд╛ "рдХрд╛рд░реНрдпрдХрд░реНрддрд╛" рдиреЛрдб рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ:
docker run -it --privileged=true --name=node -h node -d --security-opt seccomp:unconfined --cap-add=SYS_ADMIN -v /sys/fs/cgroup:/sys/fs/cgroup:ro kubeadm_docker /sbin/init

рдФрд░ рдХреБрдЫ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж (рд╕рд┐рд╕реНрдЯрдордб рдФрд░ рдбреЙрдХрд░ рдХреЗ рдЙрдардиреЗ рддрдХ) рдорд╛рд╕реНрдЯрд░ рд╕реЗ рдЬреБрдбрд╝реЗрдВ:
docker exec -it node kubeadm join --skip-preflight-checks --token=acbec6.2852dff7cb569aa0 172.17.0.2

рдЬрдм рд╡реЗ рд╢рд╛рдорд┐рд▓ рд╣реЛ рдЧрдП, - рдорд╛рд╕реНрдЯрд░ рджрд░реНрдЬ рдХрд░реЗрдВ рдФрд░ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдХреНрд░реИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
docker exec -it master bash

kubectl -n kube-system get ds -l 'component=kube-proxy' -o json | jq '.items[0].spec.template.spec.containers[0].command |= .+ ["--conntrack-max-per-core=0"]' | kubectl apply -f - && kubectl -n kube-system delete pods -l 'component=kube-proxy'

рдЕрдВрдд рдореЗрдВ рдлрд▓рд╛рд▓реИрди рдУрд╡рд░рд▓реЗ рдиреЗрдЯрд╡рд░реНрдХ рд▓рд╛рдЧреВ рдХрд░реЗрдВ:
curl -sSL "https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true" | kubectl create -f -

рдореБрдЭреЗ рдЗрд╕ рд╕реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдореЗрдВ рд╣реЗрд▓реНрдо, рдЯреНрд░реИрдлрд┐рдХ рдпрд╛ рдЧреНрд▓рд╕реНрдЯрд░рдПрдлрдПрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереА :)

kubeadm-dind-cluster рдореВрд▓ рд░реВрдк рд╕реЗ рд╡рд╣реА рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рдЯрд┐рдкреНрдкрдгреА рдХреЛ рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрдорд╛рдВрдб рдЯрд╛рдЗрдк рди рдХрд░рдирд╛ рдкрдбрд╝реЗ (рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЕрднреА рдпрд╣ рдлрд▓рд╛рд▓реИрди рдХреЗ рдмрдЬрд╛рдп рдХреБрдЫ рд╣реИрдХреНрд╕ рдХреЗ рд╕рд╛рде CNI рдмреНрд░рд┐рдЬ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореИрдВ рдХрд╛рдлреА рдареАрдХ рдХрд░ рджреВрдВрдЧрд╛ рдЬрд▓реНрдж рд╣реА)ред
рдпрд╣ рд╕реНрдерд╛рдиреАрдп рд╕реНрд░реЛрдд рд╕реЗ k8s рдШрдЯрдХреЛрдВ рдФрд░ kubeadm рджреЛрдиреЛрдВ рдХреЛ рдмрдирд╛рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рд╢реБрд░реВ рдХрд┐рдП рдЧрдП рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдХреБрдЫ рдЧреИрд░-рд╕реНрдкрд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 100% рд╕реАрдкреАрдпреВ рдЦрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЬрдм рддрдХ рдЖрдк рдЗрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддрдм рддрдХ рдбреЙрдХрд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдХреБрдмреЗрджрдо-рджрд┐рдВрдб-рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЬрд▓реНрдж рд╣реА рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХреБрдЫ рдмрджрд▓рд╛рд╡:

  • k8s рдорд╛рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд░реЗрдВ, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рд╡рд╣рд╛рдВ рдЯреВрдЯ рдЧрдпрд╛
  • рдкреВрд░реНрд╡рдирд┐рд░реНрдорд┐рдд рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди (рдореИрдВ рдРрд╕реА рдХрдИ рдЫрд╡рд┐рдпрд╛рдВ рднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ) рдЗрд╕рд▓рд┐рдП рдХреНрд▓рд╕реНрдЯрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рд╡рд┐рднрд┐рдиреНрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ CI рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ k8s . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
  • рддреЗрдЬреА рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЙрдХрд░ рдбреЗрдЯрд╛ рдбреАрдЖрдИрдЖрд░ рдХреА рдХреИрд╢рд┐рдВрдЧ
  • рдмреНрд░рд┐рдЬ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╕реАрдПрдирдЖрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди

kubeadm-dind-cluster e2e рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рди рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреА рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк k8s рдХреЗ рдирд┐рд░реНрдорд╛рдг рдФрд░ kubeadm-dind-cluster рджреЛрдиреЛрдВ рдХреЛ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЛ рдХреЙрдкреА рдХрд┐рдП рдмрд┐рдирд╛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рд░рд┐рдореЛрдЯ рдбреЙрдХрд░ рдЗрдВрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдпрд╣ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдмрд┐рд▓реНрдб рдбреЗрдЯрд╛ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЦреАрдВрдЪрддрд╛ рд╣реИ), рдЬреЛ рдХрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдзреАрдореЗ рдХрдиреЗрдХреНрд╢рди рдкрд░ рд░рд┐рдореЛрдЯ рдбреЙрдХрд░ рдХреЗ рд╕рд╛рдеред

... рдпрд╣ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реНрдерд╛рдиреАрдп рдХреБрдмреЗрдХреНрдЯрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдорд╛рд╕реНрдЯрд░ рдХрдВрдЯреЗрдирд░ рдкрд░ docker exec рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ, рдЬрдмрдХрд┐ DIND рд╕рддрд╣ рдкрд░ рдЖрд╕рд╛рди рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдХреБрдмреЗрджрдо-рдбрд┐рдВрдб-рдХреНрд▓рд╕реНрдЯрд░ рдФрд░ рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдореЗрдВ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддрдп рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХреБрдЫ рдорд╛рдЙрдВрдЯ рдХрд░ рднреА рдЖрдк рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдХрд╛ рдЙрдкрдпреЛрдЧ STOPSIGNAL SIGRTMIN+3 рдФрд░ рдкреНрд░рд▓реЛрднрди рдХрд╛ рд╡рд┐рд░реЛрдз рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП /sbin/init рдХреЗ рд░реВрдк рдореЗрдВ ENTRYPOINT , рдФрд░ рд╡реАрдПрдлрдПрд╕ рдЪрд╛рд▓рдХ рд╕рдордп рдХрд╛рдлреА рдзреАрдореА рдЧрддрд┐ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рддреЛ... рдпрд╣рд╛рдБ рдбреНрд░реЗрдЧрди рд╣реЛ;)

@ ivan4th рдХреБрдмреЗрджрдо рдФрд░ рдбрд┐рдВрдб рдХреЗ рд╕рд╛рде рдЖрдк рдЬреЛ рднреА рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж :)
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рдЗрд╕ рд░реЗрдкреЛ рдореЗрдВ рдХреБрдмреЗрджрдо-рдбрд┐рдВрдб-рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдорд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдПрдорд╡реАрдкреА рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЬрд▓реНрджреА рд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдХреБрдЫ рдмрд┐рдВрджреБ рдорд┐рд▓реЗ рдЬреЛ рд╣рдо рд╕рдВрднрд╛рд╡рд┐рдд рдПрдорд╡реАрдкреА рд╕реЗ рдкрд╣рд▓реЗ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ:

  • рдЗрд╕реЗ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЧреЛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП - рдореБрдЭреЗ рдЖрдо рддреМрд░ рдкрд░ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмреИрд╢ рд╕реЗ рджреВрд░ рдЬрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЧреЛ рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ :)
  • рдбреЗрдмрд┐рдпрди рдмреЗрд╕ gcr.io/google-containers/debian-base-$(ARCH):0.1 рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП

    • рдбрд┐рдВрдб рдХреЗ рд▓рд┐рдП рдореВрд▓ рдЫрд╡рд┐ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ gcr.io . рдкрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП

  • рдЗрд╕реЗ рдХреБрдмреЗрджрдореЛ рдЬреИрд╕реЗ рдХрдИ рдореЗрд╣рд░рд╛рдмреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
  • рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдЗрд╕реЗ рд╕реАрдЖрдИ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рд╣рд░ рдШрдВрдЯреЗ рд╕рднреА рдореЗрд╣рд░рд╛рдмреЛрдВ рдХреЗ рд▓рд┐рдП рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
  • рдЗрд╕реЗ CNI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП -- рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЕрджрд▓рд╛-рдмрджрд▓реА рдХрд░рдиреЗ рдпреЛрдЧреНрдп
  • рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдХреБрдмреЗрджрдо рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд▓реЗ рд╕рдХрддрд╛ рд╣реИ
  • рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХреБрдмреЗрджрдо v1.6+ . рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рддреБрдо рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реЛ? рднрдпрд╛рдирдХ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдХреБрдЫ рдХреБрдмреЗрджрдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛: +1:

рд╕реАрд╕реА @jbeda @lukemarsden @errordeveloper @mikedanese @timothysc @sttts

рд╢рд╛рдирджрд╛рд░ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдХреБрдмреЗрджрдо рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛

рдЕрдЧрд░ рд╣рдо рд╡рд┐рдХрд╛рд╕-рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХреБрдмреЗрджрдо-рд▓реЛрдХрд▓-рдЕрдк-рдХреНрд▓рд╕реНрдЯрд░ рд╢рд╛рдирджрд╛рд░ рд╣реЛрдЧрд╛ред

@ivan4th @luxas рдЗрд╕рдХреА рдХреНрдпрд╛ рд╕реНрдерд┐рддрд┐ рд╣реИ?

рдореИрдВ рд╕рдЪ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛... @ivan4th

@jamiehannaford

  • рдЕрднреА рддрдХ, рдореБрдЭреЗ рдЧреЛ рд░реАрд░рд╛рдЗрдЯ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЕрдиреНрдп рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рднреА рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
  • рдХреЗрдбреАрд╕реА рдХреЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рд╕реАрдПрдирдЖрдИ рдЗрдореНрдкреНрд▓рд╛рдВрдЯреНрд╕ (рд╡реАрд╡, рдХреИрд▓рд┐рдХреЛ, рдлрд▓рд╛рд▓реИрди рдФрд░ рд╕рд╛рджрд╛ рд╕реАрдПрдирдЖрдИ рдмреНрд░рд┐рдЬ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред
  • рдХрдИ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рд╕рдорд░реНрдерди рдЕрднреА рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИ
  • рдЫрд╡рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ k8s рд░рд┐рд▓реАрдЬрд╝ рд╕реЗ рд▓рд┐рдП рдЧрдП рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛, рдХреБрдЫ рдЫреЛрдЯреЗ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд╕рд╛рде, рдЕрдкрдиреА рдЕрд▓рдЧ рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рдЫрд╡рд┐ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ
  • рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ env vars рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ
  • рдЖрдзрд╛рд░ рдЫрд╡рд┐ рдЕрднреА рднреА рдЙрдмрдВрдЯреВ рд╣реИ рд▓реЗрдХрд┐рди рд╣рдо рдбреЗрдмрд┐рдпрди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ
  • рд╣рдо 1.6 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдореИрдВ рдЕрдЧрд▓реЗ рд╕рдкреНрддрд╛рд╣ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ 1.7 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реВрдВрдЧрд╛

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ рдХреЗрдбреАрд╕реА рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрд╡рд░реВрдк рдЖрдИрдПрдордУ рдореЗрдВ рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реИред рдЯреНрд░реИрд╡рд┐рд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реАрдЖрдИ рднреА рд╣реИ (рдмреАрдЯреАрдбрдмреНрд▓реНрдпреВ рдореИрдВ рд╕рд░реНрдХрд┐рд▓рд╕реАрдЖрдИ рдкрд░ рдбреАрдЖрдИрдПрдирдбреА рдЪрд▓рд╛рдиреЗ рдореЗрдВ рднреА рд╕рдлрд▓ рд░рд╣рд╛, рдЕрдЧрд░ рдпрд╣ рдХреБрдЫ рд░реБрдЪрд┐ рдХрд╛ рд╣реИ)

@luxas рд╢рд╛рдпрдж рд╣рдо рдкреВрд░реНрдг DIND рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рдмрдЬрд╛рдп @andersla рдХреЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрджрд┐ рд╣рд╛рдВ, рддреЛ рдХреНрдпрд╛ рд╣рдореЗрдВ рдбреЙрдХрд░ рдЫрд╡рд┐ рдХреЛ рдХрд╣реАрдВ рднреА рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рдпрд╛ рдХреЗрд╡рд▓ рдбреЙрдХрд░рдлрд╛рдЗрд▓ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдирд╛ рд╣реЛрдЧрд╛?

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдо 1.9 . рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВ

рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рдФрд░ рдХреГрдкрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ!

@jamiehannaford рд╕рдорд╕реНрдпрд╛ рд╣реИ, "рдкреВрд░реНрдг" DIND рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ "рд╕рд░рд▓" DIND рдЙрдкрдпреЛрдЧ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рд╣реИред рдпреЗ рдХрднреА-рдХрднреА рдХрд╛рдлреА рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ https://github.com/Mirantis/kubeadm-dind-cluster/commit/405c8bead4fb443582328fd3c7b8f01452872438 (рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕рдХреЗ рд▓рд┐рдП k8s рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рд╕рдмрдорд┐рдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА)ред kubeadm-dind-cluster рдХреЗ рд░реВрдк рдореЗрдВ , рдпрд╣ рдЕрднреА рднреА рдХрд╛рдлреА рдЙрдкрдпреЛрдЧреА рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ ( @danehans рдФрд░ @pmichali k8s IPv6 e2e рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ Virtlet рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд░реНрдХрд┐рд▓рд╕реАрдЖрдИ рдкрд░ рдЕрдкрдиреЗ e2e рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реИ), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдкрд░ рдмрд╣реБрдд рд╕рдордп рдмрд┐рддрд╛рддрд╛ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рдЧреЛ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред

рд╣рдордиреЗ рдХрд▓ рдПрд╕рдЖрдИрдЬреА рдХреА рдмреИрдардХ рдореЗрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХреА рдереА рдФрд░ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред
рдПрдХ рдкреВрд░реНрдг рд╡рд┐рдХрд╕рд┐рдд рдбреАрдЖрдИрдПрдирдбреА рд╕рдорд╛рдзрд╛рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдФрд░ рдмрдирд╛рдП рд░рдЦрдирд╛ рдХреЛрд░ рдХреБрдмреЗрджрдо рдЯреАрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдХрднреА рд╣реЛ рддреЛ рдЧреБрдВрдЬрд╛рдЗрд╢ рдирд╣реАрдВ рд╣реИред рд╣рдо рдмрд╣реБрдд рдЦреБрд╢ рд╣реИрдВ рдХрд┐ рд╕рдореБрджрд╛рдп рдЗрди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреИрд╕реЗ @ ivan4th рдХреА рдорд┐рд░рд╛рдВрдЯрд┐рд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрдбрд╝реА рдореЗрд╣рдирддред рдЕрдЧрд░ рд╣рдореЗрдВ рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫреА рдЬрдЧрд╣ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕реЗ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдареАрдХ рд╣реВрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

jbrandes picture jbrandes  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

helphi picture helphi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

shenshouer picture shenshouer  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jessfraz picture jessfraz  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

bruceauyeung picture bruceauyeung  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ