VM 3대에 Jenkins와 ansible로 kubenetes 클러스터에 Maven Java Project 배포.
k8s1: 젠킨스와 Kuberspray로 다른 노드에 클러스터를 배포하기위한 노드 Jenkins, Ansible, Kubespray k8s2: Kubernestes ControlPlane과 Worker Node, Docker Image빌드 및 Dockerhub에 업로드 Ansible, Kubernetes k8s3: Kubernetes Worker Node Kubernetes노드 구성
Vagrant를 사용하여 Virtualbox에 Ubuntu Linux 시스템을 구축.
ssh key 배포를 용이하게 하기 위해 password인증 활성화.
패키지 매니저 미러링 주소를 국내로 전환.
vagrantfile
Vagrant.configure("2") do |config|
# Define VM
config.vm.define "k8s1" do |ubuntu|
ubuntu.vm.box = "ubuntu/focal64"
ubuntu.vm.hostname = "k8s1"
ubuntu.vm.network "private_network", ip: "192.168.56.50"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "k8s1"
vb.cpus = 2
vb.memory = 3000
end
end
config.vm.define "k8s2" do |ubuntu|
ubuntu.vm.box = "ubuntu/focal64"
ubuntu.vm.hostname = "k8s2"
ubuntu.vm.network "private_network", ip: "192.168.56.51"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "k8s2"
vb.cpus = 2
vb.memory = 3000
end
end
config.vm.define "k8s3" do |ubuntu|
ubuntu.vm.box = "ubuntu/focal64"
ubuntu.vm.hostname = "k8s3"
ubuntu.vm.network "private_network", ip: "192.168.56.52"
ubuntu.vm.provider "virtualbox" do |vb|
vb.name = "k8s3"
vb.cpus = 2
vb.memory = 3000
end
end
config.vm.provision "shell", inline: <<-SHELL
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
sed -i 's/archive.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/mirror.kakao.com/g' /etc/apt/sources.list
systemctl restart ssh
SHELL
end
Kubernetes 1.23.3
Kubespray release-2.16
ansible 5.7.1
ansible-core 2.12.5
Jenkins 2.332.3
docker 20.10.17
docker 5.0.3 (Python module)
kubernetes 23.6.0 (python module)
cryptography 3.4.8
jinja2 2.11.3
netaddr 0.7.19
pbr 5.4.4
jmespath 0.9.5
ruamel.yaml 0.16.10
ruamel.yaml.clib 0.2.6
MarkupSafe 1.1.1