k8s 집단 배치 v1.15 실천 10:work 노드 기초 환경

5318 단어 k8swork노트
워크 노드 기반 환경 배포
주1
이 세트의 환경은 세 개의 마스터 노드가 동시에work 노드를 하기 때문에 기초 환경은 더 이상 배치할 필요가 없다.
새로운work 노드를 추가하면 기초 환경 준비를 참고하면 됩니다
주2
마스터 노드에서 실행되는 구성 요소는 kubectl,etcd,flannel,kube-apiserver,kube-controller-manager,kube-scheduler,docker입니다.
work 노드가 실행하는 구성 요소는 flannel,docker,kubelet,kube-proxy입니다.flannel과docker는 이미 배치되어 있습니다.kubelet과kube-proxy만 배치하면 됩니다
주3
flannel의 네트워크는 docker 네트워크와 같은 세그먼트에 있어야 합니다
모든 노드가 docker 프로필을 수정해야 합니다
[root@k8s-node1 kube-scheduler]#  systemctl status docker
● docker.service - Docker Application Container Engine
   Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-11-04 20:43:37 EST; 2h 53min ago
     Docs: https://docs.docker.com
 Main PID: 1641 (dockerd)
    Tasks: 11
   Memory: 146.9M
   CGroup: /system.slice/docker.service
           └─1641 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Nov 04 20:43:31 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:31.650071753-05:00" level=info msg="ccResolverWrapper: sending updat...ule=grpc
Nov 04 20:43:31 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:31.650086343-05:00" level=info msg="ClientConn switching balancer to...ule=grpc
Nov 04 20:43:31 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:31.831923167-05:00" level=info msg="[graphdriver] using prior storag...verlay2"
Nov 04 20:43:32 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:32.278737358-05:00" level=info msg="Loading containers: start."
Nov 04 20:43:34 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:34.889127744-05:00" level=info msg="Default bridge (docker0) is assi...address"
Nov 04 20:43:36 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:36.265732048-05:00" level=info msg="Loading containers: done."
Nov 04 20:43:37 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:37.279426242-05:00" level=info msg="Docker daemon" commit=9013bf583a...=19.03.4
Nov 04 20:43:37 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:37.280331422-05:00" level=info msg="Daemon has completed initialization"
Nov 04 20:43:37 k8s-node1 systemd[1]: Started Docker Application Container Engine.
Nov 04 20:43:37 k8s-node1 dockerd[1641]: time="2019-11-04T20:43:37.548397588-05:00" level=info msg="API listen on /var/run/docker.sock"
Hint: Some lines were ellipsized, use -l to show in full.
[root@k8s-node1 kube-scheduler]#

수정/usr/lib/systemd/system/docker.서비스 파일
기본 파일 보기
[root@k8s-node1 kube-scheduler]#  cat /usr/lib/systemd/system/docker.service |grep -v ^# |grep -v ^$
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
[root@k8s-node1 kube-scheduler]# 

수정 후에 만나요.
[root@k8s-node1 kube-scheduler]#  cat /usr/lib/systemd/system/docker.service |grep -v ^# |grep -v ^$
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
BindsTo=containerd.service
After=network-online.target firewalld.service containerd.service
Wants=network-online.target
Requires=docker.socket
[Service]
Type=notify
EnvironmentFile=/run/flannel/docker
ExecStart=/usr/bin/dockerd --log-level=error $DOCKER_NETWORK_OPTIONS
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
[root@k8s-node1 kube-scheduler]#

$DOCKER_NETWORK_OPTIONS.dockerd가 실행될 때, 예를 들어 docker-proxy와 같은 다른 docker 명령을 호출하기 때문에, docker 명령이 있는 디렉터리를 PATH 환경 변수에 추가해야 합니다.
flanneld가 시작될 때 네트워크 설정을/run/flannel/docker 파일에 쓰고,dockerd가 시작되기 전에 이 파일의 환경 변수 DOCKER 를 읽습니다.NETWORK_OPTIONS, 그리고 docker0 브리지 세그먼트를 설정합니다.
EnvironmentFile 옵션을 여러 개 지정하면/run/flannel/docker를 마지막에 두어야 합니다. (docker0이 flanneld로 생성된bip 파라미터를 사용해야 합니다.)
고친 후 docker 서비스를 다시 시작합니다
systemctl daemon-reload && systemctl restart docker

flannel1.1과 docker0이 같은 세그먼트에 있음
3: flannel.1:  mtu 1450 qdisc noqueue state UNKNOWN group default 
    link/ether da:52:0c:1f:81:d3 brd ff:ff:ff:ff:ff:ff
    inet 172.30.86.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet6 fe80::d852:cff:fe1f:81d3/64 scope link 
       valid_lft forever preferred_lft forever
4: docker0:  mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:b8:ec:6d:b4 brd ff:ff:ff:ff:ff:ff
    inet 172.30.86.1/24 brd 172.30.86.255 scope global docker0
       valid_lft forever preferred_lft forever

좋은 웹페이지 즐겨찾기