k8s 집단 배치 v1.15 실천 10:work 노드 기초 환경
주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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[K8s] Kubernetes Pod를 다시 시작하는 방법이 경우 빠르고 쉽게 다시 시작할 수 있는 방법이 필요할 수 있습니다. 따라서 단일 포드를 다시 시작하는 간단한 방법이 없습니다. 이 문서에서 다룰 몇 가지 사용 가능한 옵션이 있습니다. ReplicaSet에서 유지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.