노드 노드 제거 및 추가 - 컨테이너 클러스터 관리 환경을는 Kubernetes

 

첫째, 어떻게는 Kubernetes 클러스터에서 노드를 제거하는
등 다음과 같이 클러스터 접근 방식에서이 노드 노드 K8S-node03 제거로 :

1)先在마스터节点查看노드情况
[루트 @의 K8S-master01 ~] # kubectl GET는 노드 
NAME 상태 역할 AGE 버전 
K8S-node01 준비 <없음> 47D v1.14.2의 
K8S-node02 준비 <없음> 47D v1.14.2 
k8s- node03 준비 <없음> 47D v1.14.2 

2)接着查看下포드情况
[루트 @의 K8S-master01 ~] #의 kubectl 포드 폭 -o 얻을 
NAME READY 상태가 AGE IP NODE 선정 NODE 준비 게이츠가 다시 시작 
dnsutils-DS-5sc4z 1/1 963 40D 172.30.56.3 K8S-node02 실행 <없음> <없음> 
dnsutils-DS-h546r 963 40D 172.30.72.5 K8S-node03을 실행 1/1 <없음> <없음>
dnsutils-DS-jx5kx 1/1 963 40D 172.30.88.4 K8S-node01 <없음> <없음>을 실행하지 
0 27D 172.30.72.11 K8S-node03 <없음> <없음> 실행 케빈 - nginx를 1/1 
내-의 nginx-5dd67b97fb-을 0 40D 172.30.72.4 K8S-node03을 실행 69gvm 1/1 <없음> <없음> 
내-의 nginx-5dd67b97fb-8j4k6 1/1 0 40D 172.30.88.3 K8S-node01 <없음> <없음> 실행 
의 nginx-7db9fccd9b-dkdzf 1 0 27D 172.30.88.8 K8S-node01 실행 / 1 <없음> <없음> 
0 27D 172.30.72.10 K8S-node03 실행 Nginx에-7db9fccd9b-t8njb 1/1 <없음> <없음>
0 27D 172.30.56.6 K8S-node02 실행 Nginx에-7db9fccd9b-vrp9f 1/1 <없음> <없음> 
경고 : ReplicationController, ReplicaSet, 작업, DaemonSet 또는 StatefulSet에 의해 관리되지 포드 삭제 : 기본 / 케빈-의 nginx를; DaemonSet 관리 포드 무시 : 기본 / dnsutils-DS를-h546r, 기본 / nginx를-DS-6kfsw, KUBE 시스템 / 노드 - 수출 - zmb68 
의 nginx-DS-41D 4lf8z 0 172.30.56.2 K8S-node02 실행 1/1 <없음> <없음>
Nginx에-DS-41D 6kfsw 0 172.30.72.2 K8S-node03 실행 1/1 <없음> <없음> 
의 nginx-DS-41D xqdgw 0 172.30.88.2 K8S-node01 <없음> <없음> 실행 1/1 

3)를封锁K8S -node03这个노드节点,排干该노드节点上的포드资源
[루트 @의 K8S-master01 ~] #에 kubectl 드레인 K8S는-node03는 --delete 로컬 데이터는 --ignore-daemonsets의 --force 
노드 / K8S-node03은 수장 
퇴거 포드 "메트릭 - 서버 54997795d9-rczmc" 
포드 퇴거 "케빈 - nginx를" 
포드 "의 nginx-7db9fccd9b-t8njb을"퇴거 
퇴거 포드 "coredns-5b969f4c88-pd5js" 
포드 "는 Kubernetes - 대시 보드 7976c5cb9c-4jpzb을"퇴거 
포드 퇴거 " 내-의 nginx-5dd67b97fb-69gvm "
포드 / 내-의 nginx-5dd67b97fb-69gvm 퇴거
퇴거 포드 / coredns-5b969f4c88-pd5js 
포드 / Nginx에-7db9fccd9b-t8njb 퇴거 
포드 /는 Kubernetes-계기판 7976c5cb9c-4jpzb 퇴거 
포드 / 케빈 Nginx의 퇴거 
포드 / 메트릭 - 서버 54997795d9-rczmc 퇴거 
노드 / K8S-node03 퇴거 

4)接着删除K8S-node03의这个节点
[루트 @의 K8S-master01 ~] 노드 K8S-node03 삭제 kubectl # 
노드 "K8S-node03"삭제
 
5)보기 포드 케이스 및 K8S-node03에 포드가 유지 다른 노드 노드에 파견 된 것을 발견 온 
[루트 @의 K8S-master01 ~] #의 kubectl는 포드가 넓은 -o 수
AGE IP 노드 선정 NODE 준비 게이츠가 다시 시작 READY 상태 NAME 
963 40D 172.30.56.3 K8S-node02 <없음> <없음> 실행 dnsutils-DS-5sc4z 1/1 
dnsutils-DS-jx5kx 1/1 실행 963 40D 172.30.88.4 k8s-을 node01 <없음> <없음> 
내-의 nginx-5dd67b97fb-8j4k6 1/1 0 40D 172.30.88.3 K8S-node01 <없음> <없음> 실행 
실행 내-의 nginx-5dd67b97fb-kx2pc 1/1 0 98S 172.30.56.7 k8s- node02 <없음> <없음> 
0 98S 172.30.88.7 K8S-node01 실행 Nginx에-7db9fccd9b-7vbhq 1/1 <없음> <없음> 
0 27D 172.30.88.8 K8S-node01 실행 Nginx에-7db9fccd9b-dkdzf 1/1 <없음> <없음> 
0 27D 172.30.56.6 K8S-node02 실행 Nginx에-7db9fccd9b-vrp9f 1/1 <없음> <없음> 
의 nginx-DS- 0 41D 172.30.56.2 K8S-node02 실행 4lf8z 1/1 <없음> <없음> 
의 nginx-DS-41D xqdgw 0 172.30.88.2 K8S-node01 실행 1/1 <없음> <없음>

[루트 @의 K8S-master01는 ~] #의 kubectl 노드를 얻을 수
NAME 상태 역할 AGE 버전 
K8S-node01 준비 <없음> 47D v1.14.2의 
K8S-node02 준비 <없음> 47D v1.14.2 
2 
6) 마지막 노드 K8S-node03에 정리 작업을 수행 
[K8S-node03 루트 @ ~] #에 systemctl STOP-프록시 도커 kubelet KUBE KUBE KUBE-프록시 Nginx에 flanneld
 
[루트 @의 K8S-node03 ~] # 소스 /opt/k8s/bin/environment.sh 
[루트 @ | K8S-node03 ~] # 마운트 그렙 "$ {K8S_DIR}"| AWK는 '{$ 3 인쇄}'| xargs를 sudo를 언 마운트 
[루트 @의 K8S-node03 ~] # RF RM은 $ {K8S_DIR} / kubelet 
[루트 @의 K8S-node03 ~] # RF RM은 $ {DOCKER_DIR} 
[루트 @ k8s- node03 ~] # rm을 -rf / var에 / 실행 / 플란넬 / 
[루트 @의 K8S-node03 ~] # rm을 -rf / var에 / 실행 / 고정 표시기 / 
[루트 @의 K8S-node03 ~] #는 rm -rf을 / etc / systemd / 시스템 / {kubelet, 고정 표시기, flanneld, KUBE-의 nginx} .service 
[K8S-node03 @ 루트 ~] # RF RM은 / 옵션 / K8S / 빈 / * 
[루트 @의 K8S-node03 ~] #는 rm -rf / 등 / flanneld / CERT / 기타 /는 Kubernetes / 인증서
  
[루트 @의 K8S-node03 ~] # iptables에 -F && iptables에 - X &&의 iptables -F -t NAT &&의 iptables -X -t NAT 
[루트 @의 K8S-node03 ~] # 개의 IP 링크 델 flannel.1 
[루트 @의 K8S-node03 ~] # 개의 IP 링크 델 docker0

둘째로, 노드가 노드의 클러스터는 Kubernetes에 첨가하는 방법
등의 클러스터에 연결하기 이전에 제거 K8S-node03의 K8S 노드로서 (다음 동작은 K8S-master01 노드에서 수행)

1) 노드에 스크립트 파일 /opt/k8s/bin/environment.sh의 K8S-node03 노드 노드 변수를 수정하고 배포했습니다. 
/opt/k8s/bin/environment.sh /opt/k8s/bin/environment.sh.bak1 CP 번호 [루트 master01 @ ~ K8S] 
[@ K8S 루트 master01 ~] # 빔 / 옵션 / K8S / 빈 / 환경 .sh로 
........ 
# 클러스터 클러스터 배열 노드의 모든 IP 노드 
수출 NODE_NODE_IPS = (172.16.60.246) 
클러스터 배열 노드 호스트에 대응하는 #의 IP 노드 
수출 NODE_NODE_NAMES = (K8S-node03) 

[루트 @의 K8S ~ -master01] # 데프 /opt/k8s/bin/environment.sh /opt/k8s/bin/environment.sh.bak1   
17c17 
<수출 NODE_NODE_IPS = (172.16.60.246) 
--- 
> 내보내기 NODE_NODE_IPS = (172.16.60.244 172.16 172.16.60.246 .60.245) 
19c19 
<수출 NODE_NODE_NAMES = (K8S-node03) 
---
> 수출 NODE_NODE_NAMES = (K8S-node01의 K8S-node02 K8S-node03) 

2) 이전에 K8S-master01 노드 생산 인증서 파일에 새로 추가 된 노드 노드에 분산 
[루트 @의 K8S-master01 일] $에서 node_node_ip에 대한 # NODE_NODE_IPS {[@]} 
    메아리 ">>> node_node_ip의 $ {}" 
    루트 node_node_ip SSH} {@ $ "에서 mkdir -p / 기타 /는 Kubernetes은 / CERT" 
    루트 node_node_ip config.json SCP의 .PEM CA-CA의 *를 @에 $ { } / 등 /는 Kubernetes / CERT 
  작성 하였다 

. 3) 선박 네트워크 플란넬 
[@ K8S 루트 master01 작업] # 개의 CD / 옵션 / K8S / 작업 
[@ K8S 루트 master01 작업] # 소스 /opt/k8s/bin/environment.sh 
[@ K8S 루트 master01 작업] $에서 node_node_ip에 대한 # {NODE_NODE_IPS [@]} 
    메아리 ">>> node_node_ip의 $ {}" 
    SCP 플란넬 / {flanneld, 루트 mk-docker-opts.sh}} @ $ {node_node_ip :/ 옵션 / K8S / 빈 /
    ssh를 루트 @에 $ {node_node_ip} "chmod를 + X / 옵션 / K8S / 빈 / *" 
  완료 

$에서 node_node_ip에 대한 [루트 @의 K8S-master01 일] # {NODE_NODE_IPS는 [@]} 
  않는다 
    "에코 >>> $ {node_node_ip} " 
    ssh를 뿌리 @의 $ {node_node_ip}"에서 mkdir -p / 등 / flanneld / CERT는 " 
    scp를 flanneld * .PEM 루트 @에 $ {node_node_ip} :을 / etc / flanneld / 인증서 
  수행 

에 node_node_ip에 대한 [루트 @의 K8S-master01 일] # $ {NODE_NODE_IPS [@]} 
  않는 
    메아리 ">>> $ {node_node_ip}" 
    SCP flanneld.service 루트 @에 $ {node_node_ip} :을 / etc / systemd / 시스템 / 

[루트 @의 K8S-master01 일] $에서 node_node_ip에 대한 # {NODE_NODE_IPS [@]} 
  않는다 
    ">>> $ {node_node_ip을}"에코
    ssh를 루트 @에 $ {node_node_ip} "systemctl 데몬 리로드가 && && flanneld 수 있도록 systemctl이 systemctl 다시 시작이 flanneld" 
  완료 

$에서 node_node_ip에 대한 [루트 @의 K8S-master01 일] #을 {NODE_NODE_IPS는 [@]} 
  않는다 
    "에코 >>> $ {node_node_ip } " 
    ssh를 뿌리 @의 $ {node_node_ip}"systemctl 상태 flanneld | 활성 그렙 " 
  수행 

4)部署노드节点运行组件

->安装依赖包
[루트 @의 K8S-master01 ~] # 소스 /opt/k8s/bin/environment.sh 
[루트 @의 K8S-master01 ~] $에서 node_node_ip에 대한 #을 {NODE_NODE_IPS [@]} 
  않는다 
    ">>> $ {node_node_ip}"에코 
    ssh를 루트 @에 $ {node_node_ip} "냠 설치 -y의 EPEL-출시"
    ssh를 루트 @에 $ {node_node_ip} "냠 -y 작성한 conntrack가 ipvsadm NTP ntpdate를 ipset JQ의 iptables 컬 SYSSTAT libseccomp &&으로 modprobe ip_vs 설치" 
  완료 

->部署고정 표시기组件
[루트 @의 K8S-master01 일] #에서 cd / 옵션 / K8S / 일 
[루트 @ K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh 
$에서 node_node_ip에 대한 [루트 @의 K8S-master01 일] # {NODE_NODE_IPS [@]} 
  않는 
    메아리 ">>> $ {node_node_ip}" 
    SCP 고정 표시기 / * 루트 @에 $ {node_node_ip} / 옵션 / K8S / 빈 / 
    SSH 루트 @에 $ {node_node_ip} "chmod를 + X / 옵션 / K8S / 빈 / *" 
  완료 

[루트 @의 K8S-master01 일] $에서 node_node_ip에 대한 # {NODE_NODE_IPS [@]} 
  않는 
    반향 ">>> node_node_ip $ {}" 
    SCP 고정 표시기.서비스 루트 @에 $ {node_node_ip} :을 / etc / systemd / 시스템 /
  완료 

[루트 @의 K8S-master01 일] $에서 node_node_ip {NODE_NODE_IPS [@]}에 대한 # 
  않는다 
    ">>> $ {node_node_ip}"에코 
    "에서 mkdir -p / 등 / 고정 표시기 / $을 ssh를 루트 @에 $ {node_node_ip을} {DOCKER_DIR } / {데이터, 간부} " 
    SCP 고정 표시기 - daemon.json 루트 @에 $ {node_node_ip} :을 / etc / 고정 표시기 / daemon.json 

[루트 @의 K8S-master01 일] $에서 node_node_ip에 대한 # {NODE_NODE_IPS [@]} 
    에코 ">>> $ {node_node_ip}" 
    ssh를 뿌리 @의 $ {node_node_ip} "systemctl 데몬 리로드가 && && systemctl 다시 시작 고정 표시기를 고정 표시기를 사용 systemctl가" 
  완료 

$에 node_node_ip에 대한 #을 [루트 @의 K8S-master01 작업] {NODE_NODE_IPS [@] } 
  이렇게 
    "} >>> $ {node_node_ip를"에코
    ssh를 루트 @에 $ {node_node_ip} "systemctl 상태 고정 표시기 | GREP 활동이" 
  완료 

$에 node_node_ip에 대한 #을 [루트 @의 K8S-master01 작업] {NODE_NODE_IPS [@]} 
    메아리 ">>> $ {node_node_ip}" 
    ssh를 뿌리 @의 $ {node_node_ip} "는 / usr / sbin에 / IP 요지 쇼 flannel.1 &&는 / usr / sbin에 / IP ADDR docker0 보여" 
  수행을 

->部署kubelet组件
[루트 @의 K8S-master01 ~] # cd를 / 옵션 / K8S / 일 
[루트 @ K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh 
$ {NODE_NODE_IPS [@]}에서 node_node_ip에 대한 [루트 @의 K8S-master01 일] # 
  않는 
    메아리 ">>> $ {node_node_ip}" 
    SCP는 Kubernetes / 서버 / 빈 / kubelet 루트 @에 $ {node_node_ip} / 옵션 / K8S / 빈 / 
    SSH 루트 @에 $ {node_node_ip} "chmod를 + X / 옵션 / K8S / 빈 / * " 
  완료

-> 토큰 생성 (! 당신이 만료 작성하기 전에, 토큰이 24 시간에 대해서만 유효, 즉 하루 만 유효) 
[루트 #에서 cd / 옵션 / K8S / 일 K8S-master01 일이 @] 
# 소스 / 옵션 [K8S-master01 작업 @ 루트] /k8s/bin/environment.sh 
$에서 node_node_name에 대한 [루트 @의 K8S-master01 작업] # {NODE_NODE_NAMES는 [@]} 
  않는다 
    "$ {node_node_name >>>}"에코 
    
    # 토큰 생성 
    수출 BOOTSTRAP_TOKEN은 = $ ((가) 토큰 생성 kubeadm \ 
      부트 스트랩 토큰 --- 설명 \에 kubelet 
      bootstrappers : --groups 시스템 node_node_name} {$ \ 
      --kubeconfig ~ / .kube / 설정) 
    
    # 집합 클러스터 매개 변수 
    kubectl 설정 클러스터는 Kubernetes 설정 \ 
      --certificate-기관 = / 등 /kubernetes/cert/ca.pem \ 
      --embed에 충실-인증서 표시 = \ 
      --server KUBE_APISERVER = $ {} \
      = kubelet-에 부트 스트랩 --kubeconfig - $ {} .kubeconfig node_node_name 
    
    # 설정 클라이언트 인증 매개 변수를 
    설정-SET-자격 증명 부트 스트랩에 kubelet kubectl \ 
      --token BOOTSTRAP_TOKEN = $ {} \ 
      --kubeconfig = kubelet-에 부트 스트랩 - $ {} node_node_name .kubeconfig 
    
    # 세트 컨텍스트 매개 변수 
    kubectl 상황 설정의 기본 설정을 \ 
      --cluster =는 Kubernetes \ 
      --user = kubelet-에 부트 스트랩 \ 
      --kubeconfig = kubelet-에 부트 스트랩 - $ {} node_node_name .kubeconfig 
    
    # 기본 환경 설정 
    kubectl의 설정을 사용 컨텍스트를 --kubeconfig = kubelet-에 부트 스트랩 기본 - $ {} .kubeconfig node_node_name 
  DONE 

보기 kubeadm 새로운 노드 각 토큰에 대해 생성됩니다 : 
[@ K8S 루트 master01 작업] # 토큰 kubeadm 목록 --kubeconfig ~ / .kube / 설정
TOKEN TTL은 사용법에 대한 설명 EXTRA 그룹 EXPIRES 
47 : 47 + 08 : 00 인증, kubelet - 부트 스트랩 토큰 시스템 서명 : bootstrappers을 : K8S-node03 sdwq5g.llzr9ytm32h1mnh1 23H 2019-08-06T11 

[루트 @의 K8S-master01 일] # kubectl GET 비밀 KUBE-시스템을 -n | 그렙 부트 스트랩 토큰 
부트 스트랩 - 토큰 sdwq5g의 bootstrap.kubernetes.io/token 7 77s 

[루트 @의 K8S-master01 일] #에서 cd / 옵션 / K8S / 일 
[루트 @의 K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh 
[루트 @의 K8S-master01 일] $에서 node_node_name에 대한 # {NODE_NODE_NAMES [@]} 
    ">>> $ {node_node_name을}"에코
    SCP kubelet - 부트 스트랩 - $ {node_node_name} .kubeconfig 루트 @에 $ {node_node_name} :을 / etc /는 Kubernetes / kubelet-bootstrap.kubeconfig 
  수행 

->分发부트 스트랩 kubeconfig文件到新增노드节点
[루트 @의 K8S-master01 일] # cd를 / 옵션 / K8S / 일 
[루트 @의 K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh 
[루트 @의 K8S-master01 일] $에서 node_node_name에 대한 # {NODE_NODE_NAMES [@]} 
    "에코 >> > $ {node_node_name} " 
    SCP kubelet - 부트 스트랩 - $ {node_node_name} .kubeconfig 루트 @에 $ {node_node_name} :을 / etc /는 Kubernetes / kubelet-bootstrap.kubeconfig 
  수행 

->分发kubelet参数配置文件
[루트 @의 K8S-master01 작업] # cd를 / 옵션 / K8S / 일 
[루트 @의 K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh
{NODE_NODE_IPS는 [@]} $의 node_node_ip에 대한 [루트 @의 K8S-master01 일] # 
  않는다 
    ">>> $ {node_node_ip}"에코 
    "/의 / ## NODE_NODE_IP ## / $ {node_node_ip}"나오지도 -e kubelet- config.yaml.template> kubelet - 설정 - $ {node_node_ip} .yaml.template 
    SCP kubelet - 설정 - $ {node_node_ip} .yaml.template 루트 @에 $ {node_node_ip} :을 / etc /는 Kubernetes / kubelet-config.yaml은 
  수행 

- >分发kubelet systemd 단위文件
[루트 @의 K8S-master01 일] #에서 cd / 옵션 / K8S / 일 
[루트 @의 K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh 
[루트 @의 K8S-master01 작업] $에서 node_node_name에 대한 # {NODE_NODE_NAMES [@]} 
  않는다 
    ">>> $ {node_node_name을}"에코
    SED -e "S / ## NODE_NODE_NAME ## / $ {node_node_name} /"kubelet.service.template> kubelet - $ {node_node_name} .service 
    SCP kubelet - $ {node_node_name} .service 루트 @에 $ {node_node_name} : / 등 /systemd/system/kubelet.service이 
  완료 

->启动kubelet服务
[루트 @의 K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh 
$에서 node_node_ip {NODE_NODE_IPS [대한 [루트 @의 K8S-master01 일] # @]} 
  않는 
    메아리 ">>> $ {node_node_ip}" 
    ssh를 뿌리 @의 $ {node_node_ip} "에서 mkdir -p $ {K8S_DIR} / kubelet / kubelet - 플러그인 / 볼륨 / 간부 /" 
    ssh를 뿌리 @의 $ {node_node_ip} "/ USR 경우 / sbin / 후 swapoff -a " 
    ssh를 뿌리 @의 $ {node_node_ip}"systemctl 데몬 다시로드 && systemctl이 kubelet && systemctl를 다시 시작 kubelet 가능 "
  DONE 

-> 배포 KUBE-프록시 구성 요소
[루트 @의 K8S-master01 ~] # cd를 / 옵션 / K8S / 일 
[루트 @의 K8S-master01 일] # 소스 /opt/k8s/bin/environment.sh 
[루트 @의 K8S-master01 일] $에서 node_node_ip에 대한 #을 { NODE_NODE_IPS [@]} 
  않는 
    메아리 ">>> $ {node_node_ip}" 
    SCP는 Kubernetes / 서버 / 빈 / KUBE-프록시 루트 @에 $ {node_node_ip} / 옵션 / K8S / 빈 / 
    SSH 루트 @에 $ {node_node_ip} "는 chmod + X / 옵션 / K8S / 빈 / * " 
  완료 

$에서 node_node_name에 대한 [루트 @의 K8S-master01 일] # {NODE_NODE_NAMES [@]} 
  않는 
    메아리">>> $ {node_node_name} " 
    SCP KUBE-proxy.kubeconfig 루트 @에 $ {node_node_name} :을 / etc /는 Kubernetes / 

[루트 @의 K8S-master01 일] $에서 node_node_name에 대한 # {NODE_NODE_NAMES [@]} 
    "에코 >>>$ {node_node_name} "
    scp를 KUBE-proxy.service 루트 @에 $ {node_node_name} :을 / etc / systemd / 시스템 / 

[루트 @의 K8S-master01 일] $에서 node_node_ip에 대한 # {NODE_NODE_IPS [@]} 
  않는 
    >>> "에코 $ {node_node_ip} " 
    ssh를 뿌리 @의 $ {node_node_ip}"에서 mkdir -p $ {K8S_DIR은} / KUBE-프록시 " 
    ssh를 뿌리 @의 $ {node_node_ip}"으로 modprobe ip_vs_rr " 
    ssh를 뿌리 @의 $ {node_node_ip}는"systemctl 데몬 리로드는 && KUBE-프록시 수 systemctl &&가 KUBE-프록시 다시 시작 systemctl " 
  완료 

$에 node_node_ip에 대한 [루트 @의 K8S-master01 일] #을 {NODE_NODE_IPS [@]} 
  않는 
    메아리">>> $ {node_node_ip} " 
    ssh를 뿌리 @의 $ {node_node_ip}"systemctl 상태 kube- 프록시 | 그렙 활성 "
  DONE 

-> 수동으로 CSR 인증서 서버를 승인
[루트 @ K8S-master01 작업] # kubectl GET CSR 
NAME 나이 요청자 조건 
CSR-5fwlh 3:34 시스템 : 부트 스트랩 : 승인 sdwq5g, 발행 
CSR-t547p 3m21s 시스템 : 노드 : K8S-node03 보류 

#의 kubectl [K8S-master01 작업 @ 루트] 승인] 인증서는 CSR-t547p 
승인 certificatesigningrequest.certificates.k8s.io/csr-t547p 

[루트 @의 K8S-master01 작업] # kubectl CSR GET 
NAME 나이 요청자 조건 
CSR-5fwlh 3m53s 시스템 : 부트 스트랩 : sdwq5g 승인, 발행 
CSR-t547p 3m40s 시스템 : 노드 : K8S-node03 발행, 승인 

->보기 클러스터 상태 및 K8S-node03 노드가 클러스터에 다시 추가되었으며, 자원 포드 할당 된 발견했다. 
[루트 @의 K8S-master01 일] #의 kubectl 노드를 얻을 수
NAME 상태 역할 AGE 버전 
K8S-node01 준비 <없음> 47D v1.14.2의 
K8S-node02 준비 <없음> 47D v1.14.2의 
K8S-node03 준비 <없음> 1 초 v1.14.2 

[루트 @의 K8S-master01 일] # 개의 kubectl는 포드를 얻을 수 -o 넓은 
NAME READY 상태가 다시 시작 AGE IP 노드 선정 NODE 준비 게이트 
dnsutils-DS-5sc4z 965 40D 172.30.56.3 K8S-node02 <없음> <없음> 실행 1/1 
일 94m 172.30을 실행 dnsutils-DS-gc8sb 1/1. 72.2 K8S-node03 <없음> <없음> 
dnsutils-DS-966 jx5kx 40D 172.30.88.4 K8S-node01 실행 1/1 <없음> <없음>
내-의 nginx-5dd67b97fb-8j4k6 1/1 0 40D 172.30.88.3 K8S-node01 <없음> <없음> 실행 
0 174m 172.30.56.7 K8S-node02 실행 내-의 nginx-5dd67b97fb-kx2pc 1/1 <없음> <없음>을 
0 174m 172.30.88.7 K8S-node01 실행 Nginx에-7db9fccd9b-7vbhq 1/1 <없음> <없음> 
0 27D 172.30.88.8 K8S-node01 실행 Nginx에-7db9fccd9b-dkdzf 1/1 <없음> <없음> 
의 nginx-7db9fccd9b- 0 27D 172.30.56.6 K8S-node02 실행 vrp9f 1/1 <없음> <없음> 
의 nginx-DS-41D 4lf8z 0 172.30.56.2 K8S-node02 실행 1/1 <없음> <없음>
1 /-DS-jn759 Nginx의 0은 94m-node03 K8S 172.30.72.3 <없음> <없음> 실행 
Nginx에 xqdgw 1/1 주행 DS-0 amdha01 K8S 41D 172.30.88.2 <없음> <없음> 

[루트를 K8S하지 @ 작동 -master01] 인기 kubectl 노드 # 1 
NAME는 CPU (코어) 메모리 %는 CPU (바이트) 메모리 %의    
K8S amdha01 96M-55 % 2 % 2123Mi        
K8S의 amdha02에 133M-46 1772Mi %. 3 %이다        
K8S-46 남성. 1 % 4859Mi 61된다 node03 % 

== ================================================== ================================================== ====== 
참고 A를 
다음과 같이 K8S 위의 클러스터에 새 노드를 추가하는 경우, 관행은 다음과 같습니다 :
등 / 좋은 바인딩 호스트,은, 등등 방화벽을 끄고 1)에 로그인 할 수없는 신뢰 관계 암호를 ssh를하지 할뿐만 아니라, K8S-master01 새 노드를 좋은 직장 환경 초기화 준비 노드 노드를 않습니다. 
2) /opt/k8s/bin/environment.sh 스크립트 변수 및 NODE_NODE_IPS 새로운 노드로 노드 변수 대응 정보 NODE_NODE_NAMES 
K8S-node03 추가 단계가 다시 수행 모든 노드의 수에 따라 첨가 이상) 3 

================================================== ================================================== ======== 
두 참고 
K8S 클러스터에 따라 상기 이진 방식을 사용. : K8S kubeadmin 클러스터 도구를 만들 경우, 다음과 같이 클러스터 노드의 동작이 추가됩니다 재 활성화 

: 노드가 클러스터 명령 형식 (노드 노드 작업, 사용자 루트) 조인 
#은 가입 --token <토큰> <마스터 IP를 kubeadm을 > : <마스터 포트> 운세 -token-CA-CERT-해시 SHA256 : <해시> 

잊어 버린 토큰 마스터 노드를 보려면 다음 명령을 사용할 수있는 경우 (마스터 노드에서 작동) : 
#의 kubeadm 토큰 목록의 

기본 토큰이 24 시간 동안 유효하며, 토큰이 만료 된 경우 다음 명령 (마스터 노드의 동작) 재생성하는데 사용될 수 있으며, 
토큰 kubeadm 만들기 #

운세 토큰 캘리포니아 CERT-hash-- 경우 - : 값을 찾을 수 없습니다, 당신은 (마스터 노드에서 작동)를 생성하기 위해 다음 명령을 사용할 수 있습니다 
에는 OpenSSL RSA | # OpenSSL을 X509 -pubkey -IN /etc/kubernetes/pki/ca.crt -pubin -outform DER 2> / 디바이스 / 널 | OpenSSL을 dgst -sha256 -hex | 나오지의 /^.* // ' 

노드를 추가 한 후, 노드 (단계 마스터 노드)을 첨가보기 위해 잠시 기다려

추천

출처www.cnblogs.com/kevingrace/p/11302555.html