рдПрдХ рдореБрджреНрджрд╛ рджрд╛рдпрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдмрдЯрди рдорд╛рд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдХреГрдкрдпрд╛ рдЗрди рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЬрд╡рд╛рдм рджреЗрдВред
рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ
kubeadm рд╕рдВрд╕реНрдХрд░рдг ( kubeadm version
):
{
"clientVersion": {
"major": "1",
"minor": "11",
"gitVersion": "v1.11.2",
"gitCommit": "bb9ffb1654d4a729bb4cec18ff088eacc153c239",
"gitTreeState": "clean",
"buildDate": "2018-08-07T23:14:39Z",
"goVersion": "go1.10.3",
"compiler": "gc",
"platform": "linux/amd64"
}
}
рдкрд░реНрдпрд╛рд╡рд░рдг :
kubectl version
):{
"clientVersion": {
"major": "1",
"minor": "11",
"gitVersion": "v1.11.2",
"gitCommit": "bb9ffb1654d4a729bb4cec18ff088eacc153c239",
"gitTreeState": "clean",
"buildDate": "2018-08-07T23:17:28Z",
"goVersion": "go1.10.3",
"compiler": "gc",
"platform": "linux/amd64"
},
"serverVersion": {
"major": "1",
"minor": "11",
"gitVersion": "v1.11.2",
"gitCommit": "bb9ffb1654d4a729bb4cec18ff088eacc153c239",
"gitTreeState": "clean",
"buildDate": "2018-08-07T23:08:19Z",
"goVersion": "go1.10.3",
"compiler": "gc",
"platform": "linux/amd64"
}
}
uname -a
):$ kubectl get all --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/coredns-78fcdf6894-bvtcg 1/1 Running 2 3h
kube-system pod/coredns-78fcdf6894-lq7st 1/1 Running 2 3h
kube-system pod/etcd-k8s-master 1/1 Running 1 3h
kube-system pod/kube-apiserver-k8s-master 1/1 Running 1 3h
kube-system pod/kube-controller-manager-k8s-master 1/1 Running 1 3h
kube-system pod/kube-flannel-ds-6tgqf 1/1 Running 2 3h
kube-system pod/kube-flannel-ds-cn4ql 1/1 Running 1 3h
kube-system pod/kube-proxy-cjlvz 1/1 Running 1 3h
kube-system pod/kube-proxy-w7ts7 1/1 Running 1 3h
kube-system pod/kube-scheduler-k8s-master 1/1 Running 1 3h
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3h
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/kube-flannel-ds 2 2 2 2 2 beta.kubernetes.io/arch=amd64 3h
kube-system daemonset.apps/kube-proxy 2 2 2 2 2 beta.kubernetes.io/arch=amd64 3h
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/coredns 2 2 2 2 3h
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/coredns-78fcdf6894 2 2 2 3h
рдореИрдВрдиреЗ рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдИ рд╣реИ рддрд╛рдХрд┐ рдПрдХ рдлрд▓реА рджреВрд╕рд░реА рдлрд▓реА рдХреЛ рдХрд░реНрд▓ рдХрд░ рд╕рдХреЗ, рд▓реЗрдХрд┐рди рдирд╛рдо рдХрднреА рд╣рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдлрд▓реА рдореЗрдВ рдПрдХреНрдЬ-рдЗрдВрдЧ:
# cat /etc/resolv.conf
nameserver 10.96.0.10
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
рдПрдХ рдкреБрд░рд╛рдиреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдореЗрдВ рдЬрд╣рд╛рдВ рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдерд╛, рдореБрдЭреЗ "10. рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕" рдирд╛рдо рдХреЗ рд╕рд╛рде рдЖрдИрдкреА 10.96.0.10 рдХреЗ рд╕рд╛рде рдПрдХ рд╕реЗрд╡рд╛ рдпрд╛рдж рд╣реИред рдЗрд╕ рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ рдРрд╕реА рд╕реЗрд╡рд╛ рдирд╣реАрдВ рд╣реИред
curl my-service
curl: (6) Could not resolve host: my-service
curl my-service.default.svc.cluster.local
curl: (6) Could not resolve host: my-service.default.svc.cluster.local
curl www.google.com
curl: (6) Could not resolve host: www.google.com
рдбреАрдПрдирдПрд╕ рд▓реБрдХрдЕрдк рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреБрдмреЗрджрдо рдФрд░ рдлрд▓рд╛рд▓реИрди рдХреЗ рд╕рд╛рде рддрд╛рдЬрд╛ рдЗрдВрд╕реНрдЯреЙрд▓, рдПрдХ рдиреЛрдб рдХреЗ рд╕рд╛рде рд╕реЗрдВрдЯреЛрд╕ 7 рдФрд░ рдорд╛рд╕реНрдЯрд░ рднреА рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЕрднрд┐рдирдп рдХрд░рддреЗ рд╣реИрдВред
рдПрдХ рдлрд▓реА рдФрд░ рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдПрдВ, рдПрдХ рдлрд▓реА рдХреЗ рдЕрдВрджрд░ рдлрд▓реА рдХреЛ рдХрд░реНрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
рдЖрдИрдкреА тАЛтАЛрдПрдбреНрд░реЗрд╕ рдЬреЛ рдореИрдВ /etc/resolv.conf (10.96.0.10) рдХреЗ рдЕрдВрджрд░ рджреЗрдЦрддрд╛ рд╣реВрдВ, рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рдХреНрдпреВрдм-рдбреЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд╛рд░ рдореБрдЭреЗ 10.96.0.10 рдореЗрдВ рдХреБрдЫ рднреА рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИред
$ kubectl logs -f --namespace=kube-system coredns-78fcdf6894-bvtcg
.:53
CoreDNS-1.1.3
linux/amd64, go1.10.1, b0fd575c
2018/08/14 15:34:06 [INFO] CoreDNS-1.1.3
2018/08/14 15:34:06 [INFO] linux/amd64, go1.10.1, b0fd575c
2018/08/14 15:34:06 [INFO] plugin/reload: Running configuration MD5 = 2a066f12ec80aeb2b92740dd74c17138
^C
$ kubectl logs -f --namespace=kube-system coredns-78fcdf6894-lq7st
.:53
2018/08/14 15:34:06 [INFO] CoreDNS-1.1.3
2018/08/14 15:34:06 [INFO] linux/amd64, go1.10.1, b0fd575c
2018/08/14 15:34:06 [INFO] plugin/reload: Running configuration MD5 = 2a066f12ec80aeb2b92740dd74c17138
CoreDNS-1.1.3
linux/amd64, go1.10.1, b0fd575c
рдЬреЛ рднреА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдкрд░ kube-dns
рд╕реЗрд╡рд╛ рдирд╣реАрдВ рд╣реИред
рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЪреАрдЬреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдлрд┐рд░ рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЧрд╛рдпрдм рд╣реЛ рдЧрдпрд╛ред
рдЖрдк рдЗрд╕ yaml рдХрд╛ рдЙрдкрдпреЛрдЧ kubectl apply -f
рд╕рд╛рде рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ...
apiVersion: v1
kind: Service
metadata:
name: kube-dns
namespace: kube-system
annotations:
prometheus.io/port: "9153"
prometheus.io/scrape: "true"
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
kubernetes.io/name: "CoreDNS"
spec:
selector:
k8s-app: kube-dns
clusterIP: 10.96.0.10
ports:
- name: dns
port: 53
protocol: UDP
- name: dns-tcp
port: 53
protocol: TCP
рдиреЛрдЯ: рдпрд╣ рдкреНрд░рддрд┐-рд╕рд╣рдЬ рд╣реИ рдХрд┐ CoreDNS рд╕реЗрд╡рд╛ рдХрд╛ рдирд╛рдо рдЕрднреА рднреА "рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕" рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЛрд░рдбрдиреНрд╕ рдкреЙрдбреНрд╕ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ (рдЬреЛ рдЪрдпрдирдХрд░реНрддрд╛ рд▓реЗрдмрд▓ "рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ 'рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред
рдореИрдВ рдУрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБ, рдФрд░ рд╡рд░реНрдгрди рдФрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реА рд╣реИ: kubeadm
Centos 7.5 рдкрд░ рдПрдХ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЬреЛ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдиреЛрдб рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдореИрдВ рд╕реЗрд╡рд╛ рдореМрдЬреВрдж рд╣реИ:
╬╗ k get all --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
default pod/busybox 0/1 Error 0 28m
default pod/gitlab-gitlab-fd8b9fb85-26mkz 0/1 CrashLoopBackOff 6 50m
default pod/gitlab-minio-7fb7886d94-2zsff 1/1 Running 0 50m
default pod/gitlab-postgresql-8684bb6656-ltxjm 1/1 Running 0 50m
default pod/gitlab-redis-785447c586-84x4c 1/1 Running 0 50m
default pod/ldap-79bb8c66b9-68v9f 1/1 Running 0 2d
default pod/local-volume-provisioner-dkxm9 1/1 Running 0 2d
kube-system pod/coredns-78fcdf6894-2t8tv 1/1 Running 0 2d
kube-system pod/coredns-78fcdf6894-wvq26 1/1 Running 0 2d
kube-system pod/etcd-server1.stitches.tech 1/1 Running 0 2d
kube-system pod/kube-apiserver-server1.domain 1/1 Running 0 2d
kube-system pod/kube-controller-manager-server1.domain 1/1 Running 0 2d
kube-system pod/kube-flannel-ds-m9cz5 1/1 Running 0 2d
kube-system pod/kube-proxy-qhr8p 1/1 Running 0 2d
kube-system pod/kube-scheduler-server1.domain 1/1 Running 0 2d
kube-system pod/kubernetes-dashboard-6948bdb78-qnp4b 1/1 Running 0 2d
kube-system pod/tiller-deploy-56c4cf647b-64w8v 1/1 Running 0 2d
metallb-system pod/controller-9c57dbd4-fqhzb 1/1 Running 0 2d
metallb-system pod/speaker-tngv7 1/1 Running 0 2d
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/gitlab-gitlab LoadBalancer 10.102.204.34 192.168.1.201 22:32208/TCP,80:32194/TCP,443:31370/TCP 50m
default service/gitlab-minio ClusterIP None <none> 9000/TCP 50m
default service/gitlab-postgresql ClusterIP 10.108.66.88 <none> 5432/TCP 50m
default service/gitlab-redis ClusterIP 10.97.59.57 <none> 6379/TCP 50m
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 2d
default service/ldap-service LoadBalancer 10.101.250.10 192.168.1.200 389:32231/TCP 2d
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP 2d
kube-system service/kubernetes-dashboard NodePort 10.104.132.52 <none> 443:30924/TCP 2d
kube-system service/tiller-deploy ClusterIP 10.96.67.163 <none> 44134/TCP 2d
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
default daemonset.apps/local-volume-provisioner 1 1 1 1 1 <none> 2d
kube-system daemonset.apps/kube-flannel-ds 1 1 1 1 1 beta.kubernetes.io/arch=amd64 2d
kube-system daemonset.apps/kube-proxy 1 1 1 1 1 beta.kubernetes.io/arch=amd64 2d
metallb-system daemonset.apps/speaker 1 1 1 1 1 <none> 2d
NAMESPACE NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
default deployment.apps/gitlab-gitlab 1 1 1 0 50m
default deployment.apps/gitlab-minio 1 1 1 1 50m
default deployment.apps/gitlab-postgresql 1 1 1 1 50m
default deployment.apps/gitlab-redis 1 1 1 1 50m
default deployment.apps/ldap 1 1 1 1 2d
kube-system deployment.apps/coredns 2 2 2 2 2d
kube-system deployment.apps/kubernetes-dashboard 1 1 1 1 2d
kube-system deployment.apps/tiller-deploy 1 1 1 1 2d
metallb-system deployment.apps/controller 1 1 1 1 2d
NAMESPACE NAME DESIRED CURRENT READY AGE
default replicaset.apps/gitlab-gitlab-fd8b9fb85 1 1 0 50m
default replicaset.apps/gitlab-minio-7fb7886d94 1 1 1 50m
default replicaset.apps/gitlab-postgresql-8684bb6656 1 1 1 50m
default replicaset.apps/gitlab-redis-785447c586 1 1 1 50m
default replicaset.apps/ldap-79bb8c66b9 1 1 1 2d
kube-system replicaset.apps/coredns-78fcdf6894 2 2 2 2d
kube-system replicaset.apps/kubernetes-dashboard-6948bdb78 1 1 1 2d
kube-system replicaset.apps/tiller-deploy-56c4cf647b 1 1 1 2d
kube-system replicaset.apps/tiller-deploy-64c9d747bd 0 0 0 2d
metallb-system replicaset.apps/controller-9c57dbd4 1 1 1 2d
CoreDNS рдкреЙрдбреНрд╕ рд╕реЗ, рдореИрдВ рдмрд╛рд╣рд░ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд▓реБрдХрдЕрдк рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рдЬреЛ рдЕрдЬреАрдм рд▓рдЧрддрд╛ рд╣реИ:
root on server1 at 11:45:48 AM in /internal/gitlab
╬╗ k exec -it coredns-78fcdf6894-2t8tv /bin/sh -n kube-system
/ # cat /etc/resolv.conf
nameserver 192.168.1.254
nameserver 2600:1700:c540:64c0::1
search attlocal.net domain
/ # host gitlab
;; connection timed out; no servers could be reached
/ # host google.com
;; connection timed out; no servers could be reached
рдореЗрд░реЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ CoreDNS рдкреЙрдб рдЗрд╕реЗ рдЕрдкрд╕реНрдЯреНрд░реАрдо рдиреЗрдорд╕рд░реНрд╡рд░ рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ 192.168.1.254, рд╣реЛрд╕реНрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╛ рдЖрдИрдкреА рд╣реИред рдХреНрдпрд╛ рдореИрдВ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реВрдВ?
рд▓реЗрдХрд┐рди, рдЬреЛ рднреА рдЕрдЬрдирдмреА рд╣реИ, рд╡рд╣ рдЙрд╕ рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдЬреЛ рдЙрд╕ рдЖрдИрдкреА рдкрддреЗ рддрдХ рдареАрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ:
╬╗ kubectl run -it --rm --restart=Never --image=infoblox/dnstools:latest dnstools
If you don't see a command prompt, try pressing enter.
dnstools# ping 192.168.1.254
PING 192.168.1.254 (192.168.1.254): 56 data bytes
64 bytes from 192.168.1.254: seq=0 ttl=63 time=1.102 ms
рдХреНрдпрд╛ рдЖрдк dig
рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
dig google.com @192.168.1.254
рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдорд╛рдиреНрдп ipv6 рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╡рд╛рд▓рд╛ рд╕рд┐рд╕реНрдЯрдо рдкрд╣рд▓реЗ рдЙрд╕ ipv6 рд░рд┐рд╡рд╛рд▓реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рд╡рд╣ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдпреЗ рд╕рд┐рд╕реНрдЯрдо рдЗрд╕реЗ рд╡рд┐рдлрд▓рддрд╛ рдХрд╣рддреЗ рд╣реИрдВред рдкрд╣рд▓реЗ рдЦреБрджрд╛рдИ рдХрдорд╛рдВрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдпрджрд┐ рд╡рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рддреЛ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рджреЛрд╣рд░реА рд╕реНрдЯреИрдХ ipv4 ipv6 рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЖрдЬ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрддрдирд╛ рд╕рдордп рдмрд┐рддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП @mauilion рдХреЛ рдлрд┐рд░ рд╕реЗ рдзрдиреНрдпрд╡рд╛рдж!
рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди (рдЕрдм рдХреЗ рд▓рд┐рдП рдпрд╣ рдХрд╛рдлреА рднрдпрд╛рдирдХ рд╣реИ) рдореЗрд░реЗ рд╣реЛрд╕реНрдЯ рдУрдПрд╕ рдкрд░ firewalld
рд╕реЗрд╡рд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдерд╛:
sudo systemctl stop firewalld
sudo systemctl disable firewalld
рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╡рд╣ рдЖрджреЗрд╢ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред рдРрд╕рд╛ рдЕрдкрдиреЗ рдЬреЛрдЦрд╝рд┐рдо рдкрд░ рдХрд░реЗрдВред
рдореИрдВ kubernetes 1.11.2 рдФрд░ рдлрд▓рд╛рд▓реИрди 0.10.0 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджреЗ рдкрд░ рджреМрдбрд╝рд╛, kubeadm рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ CentOS 7 VM рдореЗрдВ рддреИрдирд╛рдд рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдХреЛ iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рддреИрдирд╛рддреА рдХреЗ рдмрд╛рдж рд╕реЗрд╡рд╛ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдореЗрд░реЗ рдкрд╛рд╕ рдХреЛрдИ рдлрд▓реА рдпрд╛ рдлрд▓реА рдирд╣реАрдВ рдереАред Iptables рдкрд░ рдлрд╝реЛрд░рд╡рд░реНрдб рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА рдиреЗ рдкрд╣рд▓реЗ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ KUBE-FORWARD рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреА, рдЬреЛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдкрд░, рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдВрднрд╛рд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлреНрд▓реИрдирд▓рд╛рдЗрди рдиреЗ DROP рдФрд░ REJECT рдирд┐рдпрдореЛрдВ рдХреЗ рдмрд╛рдж рджреЛ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗ рдЬреЛ рдХрд┐ CentOS 7 FORWARD рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИрдВред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдЬрдм рдореИрдВрдиреЗ REJECT рдирд┐рдпрдо рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛, рддреЛ рдлрд╝реНрд▓реЗрдирд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝реЗ рдЧрдП рдирд┐рдпрдо рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдореЗрд░реА рдкреЙрдбреНрд╕ рдЕрдиреНрдп рдкреЙрдбреНрд╕ рдФрд░ рд╕рд░реНрд╡рд┐рд╕ ips рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреНрдпреВрдВрдХрд┐ рдХреНрдпреВрдм-рдкреНрд░реЙрдХреНрд╕реА KUBE-FORWARD рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдореИрдВрдиреЗ KUBE-FORWARD рдирд┐рдпрдо рдХреЗ рдмрд╛рдж рджреЛ рдирд┐рдпрдо рдЬреЛрдбрд╝реЗ рд╣реИрдВ рдЬреЛ NEW рдХреЗ cststate рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдПрдХ рдмрд╛рд░ рдореИрдВрдиреЗ рдЗрди рдирд┐рдпрдореЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджрд┐рдпрд╛, рддреЛ рдЖрдВрддрд░рд┐рдХ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рдереАред
рдЬрд╛рдВрдЪ рдХрд░реЗрдВ clusterDNS
рдореЗрдВ рдЪрд░ /var/lib/kubelet/config.yaml
ред рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ 10.96.0.10
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдмрдХрд┐ рдпрд╣ 10.244.240.10
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ (рдпрд╣реА рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд┐рдпрд╛ рд╣реИ)ред рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрджреНрджрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЖрдкрдХрд╛ рдорд╛рдЗрд▓реЗрдЬ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
@ рдХрдВрдкреНрдпреВрдЯрд░ , 10.244.0.0/16 рдлреНрд▓реИрдирд▓рд╛рдЗрди рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ _pod_ cidr рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдРрд╕рд╛ рд╣реИ, рддреЛ 10.244.240.10
рдПрдХ рдкреЙрдб рдЖрдИрдкреА рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░-рдбреАрдПрдирдПрд╕ рдЖрдИрдкреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдкреБрди: рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдХреЛрдИ рд▓реЛрдб рд╕рдВрддреБрд▓рди рдирд╣реАрдВ)ред
рдпрд╣ рдирд╣реАрдВ рд╣реИ:
рд╣рдордиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд┐рдпрд╛ рд╣реИ: --pod-network-cidr=10.244.0.0/16 --service-cidr=10.244.240.0/20
, рд▓реЗрдХрд┐рди рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЕрдм рдХреБрдЫ рдУрд╡рд░рд▓реИрдк рд╣реИ, рдЬрд┐рд╕реЗ рдореБрдЭреЗ рд╡реИрд╕реЗ рднреА рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП :-) рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @chrisohaver!
рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
clusterDNS
рдореЗрдВ рдЪрд░/var/lib/kubelet/config.yaml
ред рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ10.96.0.10
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдмрдХрд┐ рдпрд╣10.244.240.10
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ (рдпрд╣реА рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд┐рдпрд╛ рд╣реИ)ред рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрджреНрджрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЖрдкрдХрд╛ рдорд╛рдЗрд▓реЗрдЬ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж - рдЗрд╕рдиреЗ рдореБрдЭреЗ рдЯреНрд░реИрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА рдХрд┐ рдореЗрд░реЗ рдЖрдВрддрд░рд┐рдХ рдбреАрдПрдирдПрд╕ рдЕрдиреБрд░реЛрдз рдХреНрдпреЛрдВ рд╣рд▓ рдирд╣реАрдВ рд╣реЛ рд░рд╣реЗ рдереЗред
рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░рдбрдПрдирдПрд╕ рдорд╛рди рдХреЛ 192.168.0.10 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЖрдИрдЖрдИрдПрд╕ рдХреБрдмреЗрджрдо рдХреЗ рд╕рд╛рде --service-cidr = 192.168.0.0 / 16 рдФрд░ рдореЗрд░реА рдХреНрдпреВрдм-рдбреАрдПрдирдПрд╕ рд╕реЗрд╡рд╛ рдХреЛ рдЕрдкрдиреЗ рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИред
рдиреЛрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдмрд╕ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ - рдореБрдЭреЗ рдЕрдкрдиреА рдкреЙрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рдерд╛ рдЗрд╕рд▓рд┐рдП /etc/resolv.conf рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рд╡рд╣ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рд╣рд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред
CoreDNS рдкрд░ рдХрдИ рднреНрд░рдорд┐рдд рдореБрджреНрджреЗ рдереЗ рдЬреЛ рддрдм рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдП рд╣реИрдВред рдореБрджреНрджреЛрдВ рдХреЗ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╕реЗрдЯ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред
рдпрджрд┐ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░рд┐рдкреНрд░реЛ рдХреЗ 1.12+ рдЦреБрд▓реЗ рд╣реИрдВ рдФрд░ рд╣рдо ASAP рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░реЗрдВрдЧреЗред
рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
clusterDNS
рдореЗрдВ рдЪрд░/var/lib/kubelet/config.yaml
ред рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ10.96.0.10
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдмрдХрд┐ рдпрд╣10.244.240.10
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ (рдпрд╣реА рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд┐рдпрд╛ рд╣реИ)ред рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрджреНрджрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЖрдкрдХрд╛ рдорд╛рдЗрд▓реЗрдЬ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдорд╣рд╛рди, рдФрд░ рдореИрдВ рдХреИрд▓рд┐рдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬрд┐рд╕реЗ рдХреНрд▓рд╕реНрдЯрд░рдбрдПрдирдПрд╕ рдкрддрд╛ рдореБрдЭреЗ рд╕реЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдореИрдВрдиреЗ рдРрд╕рд╛ рд╣реА рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЙрд╕реА рддреНрд░реБрдЯрд┐ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реБрдП рдореЗрд░реЗ рдХреЙрд░реНрдбрди рдкреЙрдбреНрд╕ рдиреЗ рддреНрд░реБрдЯрд┐ рд░рд╛рдЬреНрдп рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛
рдореИрдВрдиреЗ рдЕрдкрдирд╛ ClusterDNS рдмрджрд▓ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдХреЛрдИ рдкреНрд░рднрд╛рд╡ рдирд╣реАрдВ рд╣реБрдЖ @justlooks
+1 CentOS 7 рдФрд░ kubeadm 1.11 рдореЗрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛
@timothysc
iptables -p FORWARD ACCEPT
рдЬреЛрдбрд╝рдирд╛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ
+1 CentOS 7 рдФрд░ kubeadm 1.12 рдореЗрдВ рд╕рдорд╛рди рдЕрдВрдХ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛
рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддрд╛рд╡ рдорд┐рд▓рд╛ред
рдХреЛрд░ рдбреАрдПрдирдПрд╕ рдбреЗрдореЙрди рдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рд╣рдЯрд╛рдП рдЧрдП рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реАрдорд╛ рд╕реАрдорд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реАрдкреАрдпреВ рд╕реАрдорд╛ рддрдХ рдкрд╣реБрдВрдЪ рд░рд╣рд╛ рдерд╛ред рдЬреЛ рдЗрд╕реЗ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░ рд░рд╣рд╛ рдерд╛ред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд▓рд╛рд▓реИрди рд╕рдорд╕реНрдпрд╛, рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЛрдирд┐ рдореЗрдВ рдореНрдпреВрдЯрд┐рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдлрд╝реНрд▓реЗрдирд▓рд╛рдЗрди рдХреЛ рддреИрдирд╛рдд рдХрд░рддреЗ рд╕рдордп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛: - --iface=eth1
, рдЕрдиреНрдпрдерд╛ рд╡рд╣реА рдбреАрдПрдирдПрд╕ рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рд╣реИ ...
https://github.com/kubernetes/kubernetes/issues/39701
vim https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд:
......
containers:
- name: kube-flannel
image: quay.io/coreos/flannel:v0.11.0-amd64
command:
- /opt/bin/flanneld
args:
- --ip-masq
- --kube-subnet-mgr
- --iface=eth1
......
рдзрдиреНрдпрд╡рд╛рдж @ рдХрдВрдкреНрдпреВрдЯрд░ , рдпрд╣ рдореБрджреНрджрд╛ рддрдп рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ coredns рдлрд▓реА рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдирд╛ рдерд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЬрд╛рдВрдЪ рдХрд░реЗрдВ
clusterDNS
рдореЗрдВ рдЪрд░/var/lib/kubelet/config.yaml
ред рд╣рдорд╛рд░реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ10.96.0.10
рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрдмрдХрд┐ рдпрд╣10.244.240.10
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ (рдпрд╣реА рд╣реИ рдХрд┐ рд╣рдордиреЗ рдЕрдкрдиреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЛ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХрд┐рдпрд╛ рд╣реИ)ред рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдФрд░ рдХреНрдпреВрдмрд▓реЗрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдореБрджреНрджрд╛ рддрдп рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЖрдкрдХрд╛ рдорд╛рдЗрд▓реЗрдЬ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред