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>
[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
설치전에는 Not Ready 임.
[root@manager sunny]# kubectl delete node k8s-worker1 ==>노드가 날아감
node "k8s-worker1" deleted
워커노드가 날아간것 확인가능.
[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
'네트워크 수업 > 쿠버네티스' 카테고리의 다른 글
쿠버네티스 23.06.02 (0) | 2023.06.02 |
---|---|
쿠버네티스 23.05.23 (0) | 2023.05.23 |
댓글