해당 글은 일프로 님의 인프런 강의 쿠버네티스 어나더 클래스 (지상편) - Sprint 1, 2의 내용을 정리한 글입니다.
해당 글에 사용된 내용, 사진 및 그림은 모두 강의와 강의 자료에 포함된 내용입니다.
ssh root@192.168.56.20
# 패키지 업데이트
yum -y update
# 타임존 설정
timedatectl set-timezone Asia/Seoul
# 방화벽 해제
systemctl stop firewalld && systemctl disable firewalld
# 쿠버네티스 레포지토리 설정
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.27/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
# kubectl 설치
yum install -y kubectl-1.27.2-150500.1.1.aarch64 --disableexcludes=kubernetes
# 도커 설치
yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce-3:23.0.6-1.el9.aarch64 docker-ce-cli-1:23.0.6-1.el9.aarch64 containerd.io-1.6.21-3.1.el9.aarch64
systemctl daemon-reload
systemctl enable --now docker
# 자바 17 설치
yum install -y java-17-openjdk
# Gradle 설치
yum -y install wget unzip
wget https://services.gradle.org/distributions/gradle-7.6.1-bin.zip -P ~/
unzip -d /opt/gradle ~/gradle-*.zip
cat <<EOF |tee /etc/profile.d/gradle.sh
export GRADLE_HOME=/opt/gradle/gradle-7.6.1
export PATH=/opt/gradle/gradle-7.6.1/bin:${PATH}
EOF
chmod +x /etc/profile.d/gradle.sh
source /etc/profile.d/gradle.sh
# git 설치
yum install -y git-2.39.3-1.el9_2
# jenkins 설치
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
yum install -y java-11-openjdk jenkins-2.414.2-1.1
systemctl enable jenkins
systemctl start jenkins
# 권한 부여
chmod 666 /var/run/docker.sock
# 유저 추가
usermod -aG docker jenkins
# 유저 변경
su - jenkins -s /bin/bash
# DockerHub 로그인
docker login
http://192.168.56.20:8080/login
cat /var/lib/jenkins/secrets/initialAdminPassword
find / -name java | grep java-17-openjdk
/opt/gradle/gradle-7.6.1
# 디렉토리 생성
mkdir ~/.kube
# 마스터 노드에서 인증서 복사
scp root@192.168.56.30:/root/.kube/config ~/.kube/
https://github.com/k8s-1pro/kubernetes-anotherclass-sprint2
# jar 파일 복사
cp /var/lib/jenkins/workspace/2121-source-build/build/libs/app-0.0.1-SNAPSHOT.jar ./2121/build/docker/app-0.0.1-SNAPSHOT.jar
# 도커 빌드
docker build -t <Your_DockerHub_Username>/api-tester:v1.0.0 ./2121/build/docker
docker push <Your_DockerHub_Username>/api-tester:v1.0.0
cat /var/lib/jenkins/workspace/2121-container-build/2121/build/docker/Dockerfile
kubectl apply -f ./2121/deploy/k8s/namespace.yaml
kubectl apply -f ./2121/deploy/k8s/pv.yaml
kubectl apply -f ./2121/deploy/k8s/pvc.yaml
kubectl apply -f ./2121/deploy/k8s/configmap.yaml
kubectl apply -f ./2121/deploy/k8s/secret.yaml
kubectl apply -f ./2121/deploy/k8s/service.yaml
kubectl apply -f ./2121/deploy/k8s/hpa.yaml
kubectl apply -f ./2121/deploy/k8s/deployment.yaml
mkdir /root/k8s-local-volume/2121