Kubernetes: рдПрдкрд┐рд╕рд░реНрд╡рд░ 1.6 . рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдЕрдкреНрд░реИрд▓ 2017  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: kubernetes/kubernetes

рдХреНрдпрд╛ рдпрд╣ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдпрд╛ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рд╣реИ? (рдПрдХ рдЪреБрдиреЗрдВ): рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ

рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рд╕рдВрд╕реНрдХрд░рдг ( kubectl version рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ):
рдЧреНрд░рд╛рд╣рдХ: v1.6.1
рд╕рд░реНрд╡рд░: v1.6.1+coreos.0

рдкрд░реНрдпрд╛рд╡рд░рдг :

  • рдХреНрд▓рд╛рдЙрдб рдкреНрд░рджрд╛рддрд╛ рдпрд╛ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди : рдирдВрдЧреЗ рдзрд╛рддреБ, 1 рдиреЛрдб (3 рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рднреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ = 1 рдорд╛рд╕реНрдЯрд░ + 2 рдХрд░реНрдордЪрд╛рд░реА)
  • рдУрдПрд╕ : рдХреЛрд░рдУрдПрд╕ 1298.7.0
  • рдХрд░реНрдиреЗрд▓ : 4.9.16-coreos-r1
  • рдЙрдкрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ : quay.io/coreos/hyperkube:v1.6.1_coreos.0 рд╕рд┐рд╕реНрдЯрдордб рдХреЗ рд░реВрдк рдореЗрдВ рдЫрд╡рд┐ kubelet.service + рдореБрдЦреНрдп рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП /etc/kubernetes/manifests рдореЗрдВ рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ

kubelet.service рд╣реИ:

# /etc/systemd/system/kubelet.service
[Unit]
Description=Kubelet service of Kubernetes

[Service]
# Mounting /etc/hosts is required for kubelet to be able to resolve
# nodes via its aliases (which may be not DNS routable).
Environment="RKT_RUN_ARGS= \
  --volume=etc-hosts,kind=host,source=/etc/hosts --mount volume=etc-hosts,target=/etc/hosts \
  --volume=var-log,kind=host,source=/var/log --mount volume=var-log,target=/var/log \
  --volume=dns,kind=host,source=/etc/resolv.conf --mount volume=dns,target=/etc/resolv.conf \
  --uuid-file-save=/var/run/kubelet-pod.uuid"
Environment=KUBELET_IMAGE_URL=quay.io/coreos/hyperkube
Environment=KUBELET_IMAGE_TAG=v1.6.1_coreos.0
ExecStartPre=/usr/bin/mkdir -p /etc/kubernetes/manifests
ExecStartPre=/usr/bin/mkdir -p /var/log/containers
ExecStartPre=-/usr/bin/rkt rm --uuid-file=/var/run/kubelet-pod.uuid
# Specifying all node labels here is required for kubelet
# to let it know its node state for correct recovery/restarts
# before sychronization with kube-apiserver happens.
ExecStart=/usr/lib/coreos/kubelet-wrapper \
  --port=10250 \
  --tls-cert-file=/etc/kubernetes/ssl/kubelet.crt \
  --tls-private-key-file=/etc/kubernetes/ssl/kubelet.key \
  --kubeconfig=/etc/kubernetes/kubeconfig-kubelet.yaml \
  --require-kubeconfig \
  --register-node=true \
  --allow-privileged=true \
  --pod-manifest-path=/etc/kubernetes/manifests \
  --hostname-override=n1.myhost.net \
  --cluster-dns=10.3.0.10 \
  --cluster-domain=cluster.local \
  --node-labels=role/apiserver=true,role/application=true \
  --network-plugin= \
  --sync-frequency=30s
ExecStop=-/usr/bin/rkt stop --uuid-file=/var/run/kubelet-pod.uuid
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

/etc/kubernetes/manifests/kube-apiserver.yml рд╣реИ:

kind: Pod
apiVersion: v1
metadata:
  name: kube-apiserver
  namespace: kube-system
spec:
  hostNetwork: true
  containers:
    - name: kube-apiserver
      image: quay.io/coreos/hyperkube:v1.6.1_coreos.0
      command:
        - /hyperkube
        - apiserver
        - --bind-address=0.0.0.0
        - --secure-port=8443
        - --insecure-port=8081
        - --advertise-address=<public ip>
        - --external-hostname=n1.myhost.net
        - --client-ca-file=/etc/kubernetes/ssl/ca.crt
        - --tls-cert-file=/etc/kubernetes/ssl/apiserver.crt
        - --tls-private-key-file=/etc/kubernetes/ssl/apiserver.key
        - --service-account-key-file=/etc/kubernetes/ssl/apiserver.key
        - --service-cluster-ip-range=10.3.0.0/24
        - --etcd-servers=http://n1.myhost.net:4001
        - --etcd-cafile=/etc/ssl/etcd/ca.crt
        - --etcd-certfile=/etc/ssl/etcd/client.crt
        - --etcd-keyfile=/etc/ssl/etcd/client.key
        - --storage-backend=etcd2
        - --storage-media-type=application/json
        - --kubelet-https=true
        - --kubelet-certificate-authority=/etc/kubernetes/ssl/ca.crt
        - --kubelet-client-certificate=/etc/kubernetes/ssl/apiserver.crt
        - --kubelet-client-key=/etc/kubernetes/ssl/apiserver.key
        - --allow-privileged=true
        - --anonymous-auth=false
        - --admission-control=NamespaceLifecycle,LimitRanger,ServiceAccount,ResourceQuota
        - --runtime-config=extensions/v1beta1=true,extensions/v1beta1/thirdpartyresources=true
      ports:
        - name: https
          containerPort: 8443
          hostPort: 8443
        - name: local
          containerPort: 8081
          hostPort: 8081
      volumeMounts:
        - name: ssl-certs-kubernetes
          mountPath: /etc/kubernetes/ssl
          readOnly: true
        - name: ssl-certs-etcd
          mountPath: /etc/ssl/etcd
          readOnly: true
        - name: ssl-certs-host
          mountPath: /etc/ssl/certs
          readOnly: true
  volumes:
    - name: ssl-certs-kubernetes
      hostPath:
        path: /etc/kubernetes/ssl
    - name: ssl-certs-etcd
      hostPath:
        path: /etc/ssl/etcd
    - name: ssl-certs-host
      hostPath:
        path: /usr/share/ca-certificates

рдХреНрдпрд╛ рд╣реБрдЖ :

kube-apiserver рдкреЙрдб рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИ ( docker logs рд╕реЗ):

F0408 09:01:03.289906       1 controller.go:128] Unable to perform initial IP allocation check: unable to refresh the service IP block: Get https://localhost:8443/api/v1/services: dial tcp: lookup localhost on 8.8.8.8:53: no such host

рдХрд┐рд╕реА рддрд░рд╣ apiserver рдмрд╛рд╣рд░реА DNS рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ localhost рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдереА :

kube-apiserver рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕рд╛ рдХрд┐ 1.5 Kubernetes рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдкрд░ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕реЗ рдХреИрд╕реЗ рдкреБрди: рдкреЗрд╢ рдХрд░реЗрдВ (рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдиреНрдпреВрдирддрдо рдФрд░ рд╕рдЯреАрдХ):

CoreOS рдкрд░ Kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдмреВрдЯ рдХрд░рдХреЗ рд▓реЗрдХрд┐рди v1.6.1 Kubernetes рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдПред

рд╣рдореЗрдВ рдФрд░ рдХреБрдЫ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ :

рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЬрд╛рдВрдЪ рдХреА рд╣реИ рдХрд┐ ClusterFirstWithHostNet рдорд╛рди рдХреЛ dnsPolicy рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ PodSpec рдореЗрдВ 1.6 рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ:

рд╣реЛрд╕реНрдЯрдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рд╕рд╛рде рдбреАрдПрдирдПрд╕ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 'рдХреНрд▓рд╕реНрдЯрд░рдлрд░реНрд╕реНрдЯрд╡рд┐рдерд╣реЛрд╕реНрдЯрдиреЗрдЯ' рдХреЗ рд▓рд┐рдП рдбреАрдПрдирдПрд╕ рдиреАрддрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреА рд╣реЛрдЧреАред

рдореИрдВрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ dnsPolicy: ClusterFirstWithHostNet рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛, рдФрд░ рдПрдХ рдЕрд▓рдЧ рддреНрд░реБрдЯрд┐ рдереА:

F0408 08:57:52.675808       1 controller.go:128] Unable to perform initial IP allocation check: unable to refresh the service IP block: Get https://localhost:8443/api/v1/services: dial tcp: lookup localhost on 10.3.0.10:53: write udp <public ip>:37836->10.3.0.10:53: write: operation not permitted

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, kube-apiserver рд╕реАрдПрд▓рдЖрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рджреЗрдЦрд╛ рдФрд░ рдЯреНрдпреВрди рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдирд╣реАрдВ рдорд┐рд▓рд╛ред

рдореЗрд░реЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ KubeDNS рдХреЛ kube-system рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рдХрд┐ /etc/kubernetes/manifests dir рдореЗрдВ рдХреНрд▓рд╕реНрдЯрд░ рдПрдбрдСрди рдХреЗ рд░реВрдк рдореЗрдВред

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

рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯ рдХреЗ /etc/hosts рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЙрд╕рдореЗрдВ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдареАрдХ рдЙрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, рдореЗрд░реЗ /etc/hosts рдореЗрдВ рдХреЗрд╡рд▓ рдореЗрд░реА рдорд╢реАрди рдХрд╛ рд╣реЛрд╕реНрдЯрдирд╛рдо рдФрд░ рдПрдХ рдЖрдИрдкреА рдерд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдирд╣реАрдВ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ 127.0.0.1 localhost рдЬреЛрдбрд╝рд╛ рдФрд░ рдПрдкрд┐рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

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

рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рдХреНрдпреЛрдВ apiserver localhost рдХреЛ 8.8.8.8 $ рдкрд░ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ?

рдЕрдкрдиреЗ рд╣реЛрд╕реНрдЯ рдХреЗ /etc/hosts рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдЙрд╕рдореЗрдВ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдареАрдХ рдЙрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рд╕реЗрдЯрдЕрдк рдкрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдереА, рдореЗрд░реЗ /etc/hosts рдореЗрдВ рдХреЗрд╡рд▓ рдореЗрд░реА рдорд╢реАрди рдХрд╛ рд╣реЛрд╕реНрдЯрдирд╛рдо рдФрд░ рдПрдХ рдЖрдИрдкреА рдерд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдирд╣реАрдВ рдерд╛ред рдЬрдм рдореИрдВрдиреЗ 127.0.0.1 localhost рдЬреЛрдбрд╝рд╛ рдФрд░ рдПрдкрд┐рд╕рд░реНрд╡рд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рддреЛ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред

рдПрдВрдЬрд┐рдирд┐рдпрд╕! рдореИрдВ

рдареАрдХ рдпрд╣реА рдореБрджреНрджрд╛ рд╣реИред

@lorenz рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!

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

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

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

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

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

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

Seb-Solon picture Seb-Solon  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ