본문 바로가기
네트워크 수업/쿠버네티스

쿠버네티스 23.05.25

by 6^6 2023. 5. 25.
728x90

■ 쿠버네티스설치.pdf
0.16MB

2023.05.23 - [네트워크 수업/Docker] - 쿠버네티스설치.pdf 23.05.23

 

5pages 부터 따라하기

 

 

 

# yum install -y yum-utils // yum-config-manager (yum 설정 정보와 저장소 관리자 설치)

# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# yum install -y docker-ce  // Community Edition (무료), Enterprise Edition (유료)

# systemctl start docker  //아래의 명령어는 현재 사용 가능한 최신 버전의 도커 엔진을 설치한다.

# wget get.docker.com  // wget (web get) : 웹 상의 파일을 다운로드 받을 때 사용하는 명령어로 # docker info // 도커의 정상동작 확인

 

vi /etc/docker/daemon.json

 

 

 

yum -y remove docker-c

 

 

yum -y install docker-ce-19.03.0 docker-ce-cli-19.03.0

 

 


출처 : https://blog.naver.com/marin_339/223106167517


vim /etc/docker/daemon.json

{
           "exec-opts": ["native.cgroupdriver=systemd"],
           "log-driver": "json-file",
           "log-opts": {
                "max-size": "100m"
           },
           "storage-driver": "overlay2"
}


docker info 하면
Cgroup Driver: systemd //원랜 cgroup
쿠버네티스 설치중에 에러뜸
==>2020년에 중단된게 호환안돼서 저렇게 써야함!

 


# cat <<EOF>> /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF

 

# yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

 

vi /etc/docker/daemon.json

 


  "exec-opts": ["native.cgroupdriver=systemd"], 
  "log-driver": "json-file", 
  "log-opts":   
    "max-size": "100m" 
  }, 
  "storage-driver": "overlay2", 
  "storage-opts": [ 
    "overlay2.override_kernel_check=true" 
  ] 
}

 

 

 

 

root@manager sunny]# systemctl start docker
[root@manager sunny]# kubeadm reset
[reset] Are you sure you want to proceed? [y/N]: y

 

centOS7 복사해서 k8s-worker1 , 2 만들기  ==> advanced에서 mac 전부 다 바꿔주기!!(꺼져있는 상태에서만 가능)

 

 

<k8smaster>

kubeadm reset

y

 

kubeadm init  //쿠버네티스 초기화

 

swapoff -a

systemctl stop firewalld

 

sudo sysctl net.bridge.bridge-nf-call-iptables=1

 

[root@manager sunny]# rm /etc/containerd/config.toml
rm: remove 일반 파일 `/etc/containerd/config.toml'? 
[root@manager sunny]# systemctl restart containerd
[root@manager sunny]# kubeadm init  //이건 master에서만 해야한다!!!

[root@manager sunny]# systemctl enable kubelet
[root@manager sunny]# systemctl start kubelet

 

<k8s-worker1>

192.168.0.101

 

[root@manager sunny]# hostnamectl set-hostname k8s-worker1

[root@manager sunny]# ping 192.168.0.100  //마스터로 핑 성공

 

<k8s-worker2>

[root@manager sunny]# hostnamectl set-hostname k8s-worker2

root@k8s-worker2 ~]# ping 192.168.0.100 //마스터로 핑 성공

 

<k8smaster>

[root@manager sunny]# systemctl start kubelet

[root@manager sunny]# kubeadm reset cleanup-node

[root@manager sunny]# rm -rf $HOME/.kube/

[root@manager sunny]# kubeadm init --apiserver-advertise-address 192.168.0.100 --pod-network-cidr=172.16.0.0/16

해서 나온 명령어 중 밑에 3개 복사해서 넣기

[root@manager sunny]#  mkdir -p $HOME/.kube
[root@manager sunny]#   sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@manager sunny]#   sudo chown $(id -u):$(id -g) $HOME/.kube/config

하고 나온 토큰 복사!! 이게 master로 들어가는 중요한 토큰 키이다.

kubeadm join 192.168.0.100:6443 --token 08b6ti.9p4byt7pdhfu3ab5 \
--discovery-token-ca-cert-hash sha256:a004d9e6e3b577754d5100dd542e4067212ec91a1bd2615b84f17cd62c34f728 

 

토큰 붙였는데 안되면?>>

[root@k8s-worker2 ~]# systemctl enable kubelet.service

[root@k8s-worker2 ~]# rm /etc/containerd/config.toml
rm: remove 일반 파일 `/etc/containerd/config.toml'? 
[root@k8s-worker2 ~]# systemctl restart containerd

[root@k8s-worker2 ~]# kubeadm reset

 

이상한 오류들 나는것 해결>>

/etc/containerd/config.toml 파일에서

disabled_plugins 항목에서 CRI 제거한 뒤

[root@k8s-worker2 ~]# systemctl restart containerd

 

[root@k8s-worker2 ~]# vi /etc/hosts

// k8smaster 에는 master랑 worker들의 아이피 넣어주고 worker은 각자의 아이피를 넣어준다.

[root@k8s-worker2 ~]# kubeadm reset

 

 

<k8smaster>

컨테이너 네트워크를 위한 플러그인==>이 플러그인을 설치해서 통신이 됨

[root@manager sunny]# kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

 

CNI = 컨테이너 네트워크 애드온(플러그온)

쿠버네티스의 네트워크 플러그인은 몇 가지 종류가 있다.

CNI 플러그인: 상호 운용성을 위해 설계된 컨테이너 네트워크 인터페이스(CNI) 명세를 준수한다.

Kubenet 플러그인: bridge 와 host-local CNI 플러그인을 사용하여 기본 cbr0 구현한다.

쿠버네티스의 컨테이너 간 통신을 위해 flannel, weaveNet,calico 등 여러 오버레이 네트워크를 사용할 수 있다.

 

 

 

우리는 weaveNet  을 설치할 것이다.

CNI = 컨테이너 네트워크를 위한 플러그인==>이 플러그인을 설치해야 통신이 됨

[root@manager sunny]# kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml

kubectl get nodes

설치전에는 Not Ready 임.

 

[root@manager sunny]# kubectl delete node k8s-worker1  ==>노드가 날아감
node "k8s-worker1" deleted

kubectl get nodes

워커노드가 날아간것 확인가능.

 

 

 

[root@manager sunny]# kubeadm token list  ==>토큰값 확인
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
08b6ti.9p4byt7pdhfu3ab5   23h         2023-05-26T02:48:51Z   authentication,signing   The default bootstrap token generated by 'kubeadm init'.   system:bootstrappers:kubeadm:default-node-token

 

[root@manager sunny]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'   ==> 해시값 확인
a004d9e6e3b577754d5100dd542e4067212ec91a1bd2615b84f17cd62c34f728

 

토큰값+해시값 = 

kubeadm join 192.168.0.100:6443 --token 08b6ti.9p4byt7pdhfu3ab5 \
--discovery-token-ca-cert-hash sha256:a004d9e6e3b577754d5100dd542e4067212ec91a1bd2615b84f17cd62c34f728

 

 

토큰 붙였는데 안되면?>>

[root@k8s-master]# kubeadm reset
[root@k8s-node1]# kubeadm reset
[root@k8s-node2]# kubeadm reset
[root@k8s-master]# systemctl restart kubelet
[root@k8s-node1]# systemctl restart kubelet
[root@k8s-node2]# systemctl restart kubelet

 

[root@k8s-worker2 ~]# systemctl enable kubelet.service

[root@k8s-worker2 ~]# rm /etc/containerd/config.toml
rm: remove 일반 파일 `/etc/containerd/config.toml'? 
[root@k8s-worker2 ~]# systemctl restart containerd

[root@k8s-worker2 ~]# kubeadm reset 

[root@k8s-worker2 ~]# swapoff -a
 

 

 

 

 

 

 

 

 

728x90

'네트워크 수업 > 쿠버네티스' 카테고리의 다른 글

쿠버네티스 23.06.02  (0) 2023.06.02
쿠버네티스 23.05.23  (0) 2023.05.23

댓글