• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

쿠버네티스 설치용 vagrant file

22.03.25 19:47 작성 조회수 249

1

안녕하세요, 강사님! 수업 잘 듣고 있습니다.

블로그에 올려주신 '쿠버네티스 설치_최신버전'에 있는 vagrant file에 관한 질문인데요. 

Node 개수를 늘리고 싶다면 (예: 4개) 상단에 있는 NodeCnt를 4로 바꾸기만 하면 될까요? (NodeCnt = 2 -> NodeCnt = 4)

-------아래 코드를 입력하면 될까요?------------------------------------------------------------------------

NodeCnt = 4

 

Vagrant.configure("2") do |config|

  

#  config.vbguest.installer_options = { allow_kernel_upgrade: true }

  config.vm.box = "centos/7"

  

  config.vm.provider :virtualbox do |vb|

    vb.memory = 3072

    vb.cpus = 4

  end

 

  config.vm.provision :shell, privileged: true, inline: $install_common_tools

 

  config.vm.define "k8s-master" do |master|

    master.vm.hostname = "k8s-master"

    master.vm.network "private_network", ip: "192.168.56.30"

    master.vm.provision :shell, privileged: true, inline: $provision_master_node

  end

 

  (1..NodeCnt).each do |i|

    config.vm.define "k8s-node#{i}" do |node| 

      node.vm.hostname = "k8s-node#{i}"

      node.vm.network "private_network", ip: "192.168.56.#{i + 30}"

    end

  end

 

 

 

end

 

$install_common_tools = <<-SHELL

 

# ssh password 접속 활성화

sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config

sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/g' /etc/ssh/sshd_config;

systemctl restart sshd.service

 

# 방화벽 해제

systemctl stop firewalld && systemctl disable firewalld

systemctl stop NetworkManager && systemctl disable NetworkManager

 

# Swap 비활성화

swapoff -a && sed -i '/ swap / s/^/#/' /etc/fstab

 

# br_netfilter 모듈 로드

cat <<EOF | tee /etc/modules-load.d/k8s.conf

br_netfilter

EOF

 

# Iptables 커널 옵션 활성화

cat <<EOF >  /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

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

EOF

sysctl --system

 

# permissive 모드로 SELinux 설정(효과적으로 비활성화)

setenforce 0

sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

 

# 쿠버네티스 YUM Repository 설정

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=1

repo_gpgcheck=1

gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg

exclude=kubelet kubeadm kubectl

EOF

 

# Centos Update

yum -y update

 

# Hosts 등록

cat << EOF >> /etc/hosts

192.168.56.30 k8s-master

192.168.56.31 k8s-node1

192.168.56.32 k8s-node2

EOF

 

# 도커 설치

yum install -y yum-utils device-mapper-persistent-data lvm2 

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

yum install -y containerd.io-1.4.9-3.1.el7 docker-ce-3:20.10.8-3.el7.x86_64 docker-ce-cli-1:20.10.8-3.el7.x86_64

 

 

mkdir /etc/docker

cat > /etc/docker/daemon.json <<EOF

{

  "exec-opts": ["native.cgroupdriver=systemd"],

  "log-driver": "json-file",

  "log-opts": {

    "max-size": "100m"

  },

  "storage-driver": "overlay2",

  "storage-opts": [

    "overlay2.override_kernel_check=true"

  ]

}

EOF

mkdir -p /etc/systemd/system/docker.service.d

 

# 도커 재시작

systemctl daemon-reload

systemctl enable --now docker

 

 

# 쿠버네티스 설치

yum install -y kubelet-1.22.0-0.x86_64 kubeadm-1.22.0-0.x86_64 kubectl-1.22.0-0.x86_64 --disableexcludes=kubernetes

systemctl enable --now kubelet

 

SHELL

 

 

 

$provision_master_node = <<-SHELL

 

# 쿠버네티스 초기화 명령 실행

kubeadm init --apiserver-advertise-address 192.168.56.30 --pod-network-cidr=20.96.0.0/12

kubeadm token create --print-join-command > ~/join.sh

 

# 환경변수 설정

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

 

# Kubectl 자동완성 기능 설치

yum install bash-completion -y

source <(kubectl completion bash)

echo "source <(kubectl completion bash)" >> ~/.bashrc

 

# Calico 설치

curl https://docs.projectcalico.org/manifests/calico.yaml -O

kubectl apply -f calico.yaml

 

# Dashboard 설치

kubectl apply -f https://kubetm.github.io/yamls/k8s-install/dashboard-2.3.0.yaml

nohup kubectl proxy --port=8001 --address=192.168.56.30 --accept-hosts='^*$' >/dev/null 2>&1 &

 

SHELL

------------------------------------------------------------------------------------------------------------

답변 1

답변을 작성해보세요.

0

추가적으로 host 세팅을 수정있습니다

중간 스크립트 부분에 아래와 같이 늘려줘야합니다.

192.168.56.33 k8s-node3

 

네, 감사합니다!