Kubernetes 클 러 스 터 설정 사용 가능
11298 단어 쿠 베 넷 스
kubelet 의 config 매개 변 수 는 특정 디 렉 터 리 에 있 는 Yml 파일 을 모니터링 하여 지정 한 디 렉 터 리 에 있 는 pod 가 안정 적 으로 실 행 될 수 있 도록 합 니 다. 디 렉 터 리 에 apiserver, controller - manager, scheduler 에 대응 하 는 Yml 설명 파일 을 만 들 수 있 습 니 다. kubelet 을 시작 하여 세 사람의 안정 적 인 운행 을 확보 할 수 있 습 니 다.api - server 는 nginx 를 사용 하여 부하 균형 과 건강 상태 감 측 을 할 수 있 습 니 다. controller - manager, scheduler 는 시작 할 때 설정 – leader - elect = true 를 통 해 선 거 를 실시 하여 같은 시간 에 호스트 한 대 만 작 동 하도록 확보 하고 고장 이 났 을 때 standby 는 master 로 전환 합 니 다.
공식 적 으로 master - standby - standby 를 추천 합 니 다.
kbelet 의 높 은 사용 가능: systemctl 설정 Restart = on - failure 로 이 루어 집 니 다. Restart 필드: kbelet 종료 후 Systemd 의 재 부팅 방식 을 정의 합 니 다.위의 예 에서 Restart 는 on - failure 로 설정 되 어 의외 의 실 패 를 표시 하면 kubelet 을 다시 시작 합 니 다.kubelet 이 정상적으로 멈 추 면 (예 를 들 어 systemctl stop 명령 을 실행) 다시 시작 하지 않 습 니 다.
Restart 필드 에서 설정 할 수 있 는 값 은 다음 과 같 습 니 다. -no (기본 값): 종료 후 다시 시작 하지 않 습 니 다 - on - success: 정상 적 인 종료 시 (종료 상태 코드 0) 만 다시 시작 합 니 다 - on - failure: 비정 상 종료 시 (종료 상태 코드 0 이 아 님), 신호 종료 와 시간 초 과 를 포함 하여 다시 시작 합 니 다 - on - abnormal: 신호 종료 와 시간 초과 만 있 습 니 다.다시 시작 합 니 다 - on - abort: 포착 되 지 않 은 신호 가 종 료 될 때 만 다시 시작 합 니 다 - on - watchdog: 시간 초과 종료 되 어야 다시 시작 합 니 다 - always: 어떤 종료 원인 이 든 항상 다시 시작 합 니 다.
apiserver 전단 nginx 높 은 사용 가능: keepalive + nginx 더 이상 군말 하지 않 습 니 다.
집단 형식
노드 정보
호스트 IP
운영 체제
172.20.1.99
centos7.2
172.20.1.100
centos7.2
172.20.1.101
centos7.2
설정 프로 세 스 (kubelet. sh 로 직접 저장 가능)
#config
cat > /etc/kubernetes/config <"--logtostderr=true"
KUBE_LOG_LEVEL="--v=0"
KUBE_ALLOW_PRIV="--allow-privileged=false"
KUBE_MASTER=""
EOF
#kubelet
cat > /etc/kubernetes/kubelet <"--address=127.0.0.1"
KUBELET_HOSTNAME="--hostname-override=172.20.1.101"
KUBELET_API_SERVER=""
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=172.20.1.128:5000/pause"
KUBELET_ARGS="--config=/etc/kubernetes/manifests --register-node=false"
EOF
#
echo "
[Unit]
Description=Kubernetes Kubelet Server
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=docker.service
Requires=docker.service
[Service]
WorkingDirectory=/var/lib/kubelet
EnvironmentFile=-/etc/kubernetes/config
EnvironmentFile=-/etc/kubernetes/kubelet
ExecStart=/usr/bin/kubelet \
\$KUBE_LOGTOSTDERR \
\$KUBE_LOG_LEVEL \
\$KUBELET_API_SERVER \
\$KUBELET_ADDRESS \
\$KUBELET_PORT \
\$KUBELET_HOSTNAME \
\$KUBE_ALLOW_PRIV \
\$KUBELET_POD_INFRA_CONTAINER \
\$KUBELET_ARGS
Restart=on-failure
[Install]
WantedBy=multi-user.target
" > /usr/lib/systemd/system/kubelet.service
#
mkdir -p /var/lib/kubelet/pods
mkdir -p /var/lib/kubelet/plugins
#
systemctl enable kubelet
#
touch /var/log/kube-apiserver.log
touch /var/log/kube-controller-manager.log
touch /var/log/kube-scheduler.log
#
mkdir -p /etc/kubernetes/manifests
#kube-apiserver.yaml
cat > /etc/kubernetes/manifests/kube-apiserver.yaml <name: kube-apiserver
spec:
hostNetwork: true
containers:
- name: kube-apiserver
image: 172.20.1.128:5000/kube-apiserver:v1.3.0
command:
- /bin/sh
- -c
- /usr/local/bin/kube-apiserver --address=172.20.1.101 --etcd-servers=http://172.20.1.103:2379,http://172.20.1.99:2379,http://172.20.1.102:2379,http://172.20.1.100:2379,http://172.20.1.101:2379
--admission-control=NamespaceLifecycle,LimitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota
--v=2 --service-cluster-ip-range=10.254.0.0/16
--allow-privileged=False 1>>/var/log/kube-apiserver.log 2>&1
ports:
- containerPort: 8080
hostPort: 8080
name: local
volumeMounts:
- mountPath: /var/log/kube-apiserver.log
name: logfile
volumes:
- hostPath:
path: /var/log/kube-apiserver.log
name: logfile
EOF
#kube-controller-manager
cat > /etc/kubernetes/manifests/kube-controller-manager.yaml <name: kube-controller-manager
spec:
containers:
- command:
- /bin/sh
- -c
- /usr/local/bin/kube-controller-manager --master=172.20.1.101:8080 --cluster-name=local
--cluster-cidr=10.254.0.0/16
--v=2 --leader-elect=true 1>>/var/log/kube-controller-manager.log 2>&1
image: 172.20.1.128:5000/kube-controller-manager:v1.3.0
livenessProbe:
httpGet:
path: /healthz
port: 10252
initialDelaySeconds: 15
timeoutSeconds: 1
name: kube-controller-manager
volumeMounts:
- mountPath: /var/log/kube-controller-manager.log
name: logfile
hostNetwork: true
volumes:
- hostPath:
path: /var/log/kube-controller-manager.log
name: logfile
EOF
#kube-scheduler
cat > /etc/kubernetes/manifests/kube-scheduler.yaml <name: kube-scheduler
spec:
hostNetwork: true
containers:
- name: kube-scheduler
image: 172.20.1.128:5000/kube-scheduler:v1.3.0
command:
- /bin/sh
- -c
- /usr/local/bin/kube-scheduler --master=172.20.1.101:8080 --v=2 --leader-elect=true 1>>/var/log/kube-scheduler.log
2>&1
livenessProbe:
httpGet:
path: /healthz
port: 10251
initialDelaySeconds: 15
timeoutSeconds: 1
volumeMounts:
- mountPath: /var/log/kube-scheduler.log
name: logfile
volumes:
- hostPath:
path: /var/log/kube-scheduler.log
name: logfile
EOF
# kueblet
systemctl start kubelet
nginx 프로필
upstream backend {
ip_hash;
server 172.20.1.99:8080 max_fails=1 fail_timeout=300s;
server 172.20.1.100:8080 max_fails=1 fail_timeout=300s;
server 172.20.1.101:8080 max_fails=1 fail_timeout=300s;
}
server {
listen 0.0.0.0:8080;
server_name apiserver;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffering off;
proxy_pass http://backend;
}
}
잘못 배열 하 다
주의 사항
레 퍼 런 스
Kubernetes - Building High-Availability Clusters http://kubernetes.io/docs/admin/high-availability/#establishing-a-redundant-reliable-data-storage-layer
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
k8s 배치 wordpressnginx 미 러 만 들 기 vi /etc/nginx/nginx.conf vi /etc/nginx/conf.d/localhost.conf 디 렉 터 리 만 들 기 미 러 제출 php 미 러 만 들 기 vi /etc/...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.