kubeadm 싱글 클러스터 마스터 노드 생성

초기화
kubeadm init
===============================================
설정

마스터노드

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

cat > token.txt
kubeadm join 10.100.0.104:6443 --token j5izb2.vvnvzr1szkilhikq \
    --discovery-token-ca-cert-hash sha256:2a5....

"ctrl+d press key"


- vxLAN 설치(weavenet)
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"


================
워커노드 1,2,3

마스터에 조인

kubeadm join 10.100.0.104:6443 --token jn4muo.u5xjtopa33b1na1f \
    --discovery-token-ca-cert-hash sha256:1049726750df941a4697043fc4751c9bc4ad5ba3a4011632245c87b80c3e36f4


mkdir -p $HOME/.kube
scp master:/etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

==============================


metrics-server (스케일 아웃 때 필요)

git clone https://github.com/kubernetes-incubator/metrics-server/
cd metrics-server/deploy/1.8+/


vi metrics-server-deployment.yaml (밑줄 추가)

containers:
      - name: metrics-server
        image: k8s.gcr.io/metrics-server-amd64:v0.3.1
        imagePullPolicy: IfNotPresent
        command:
        - ./metrics-server
        - --kubelet-insecure-tls
        - --kubelet-preferred-address-types=InternalIP
        volumeMounts:
        - name: tmp-dir
          mountPath: /tmp


kubectl apply -f ./

kubectl get pods -all -namespaces

kubectl top nodes

===============================================

리셋 (초기화 하다 잘못됐을때)
kubeadm reset

다른 user에서 kubectl 실행
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

root에서 kubectl 실행
export KUBECONFIG=/etc/kubernetes/admin.conf


파드 네트워크 설치 후 CoreDNS 실행 확인
kubectl get pods --all-namespaces

마스터에 파드를 예약 해주는 명령어
kubectl taint nodes --all node-role.kubernetes.io/master-

토큰 보기
kubeadm token list

토큰 생성
kubeadm token create

해쉬값
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
   openssl dgst -sha256 -hex | sed 's/^.* //'


클러스터에 다른 노드 추가  (마스터노드 아이피:포트)
kubeadm join 10.0.2.5:6443 --token d83kcg.eqhortytxzs0i8u8 --discovery-token-ca-cert-hash sha256:56cee27250cbec85c7e8e0205cc14c91f4eeeacf46aa6f0a726c61983f7b9aa3

마스터노드가 아닌 다른노드에서 제어
scp root@<master ip>:/etc/kubernetes/admin.conf .
kubectl --kubeconfig ./admin.conf get nodes

클러스터외부에서 API서버 연결
scp root@<master ip>:/etc/kubernetes/admin.conf .
kubectl --kubeconfig ./admin.conf prox

댓글

이 블로그의 인기 게시물

LSF (GPU 스케쥴링) 명령어 사용법

CentOS 7 리부팅 없이 새 디스크 인식 (find a new disk without reboot)

python에서 hive 사용