inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

대세는 쿠버네티스 (초급~중급편)

쿠버네티스 설치용 vagrant file

450

kongkongkong

작성한 질문수 12

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

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

vagrant 쿠버네티스 kubernetes docker 설치파일

답변 1

0

일프로

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

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

192.168.56.33 k8s-node3

 

0

kongkongkong

네, 감사합니다! 

Guest OS

1

18

2

kubeTM Blog는 없어진건가요????

1

31

2

yml 작성하다가 에러 발생해서 문의 드립니다.

0

43

2

설치수업중에 질문드립니다.

1

63

2

기초다지기 설치 문의드립니다.

1

110

4

HPA 부분 Auto Scaler 설치하는 링크가 없습니다!!

1

68

3

클러스터 초기화 및 팟 네트워크 세팅시 문제가 있습니다

1

105

1

환경 구성에 있어서 질문드립니다

1

96

2

configMap 파일생성

1

79

2

dashboard에서 pod 생성이 되지 않습니다.

1

84

2

nodePort 서비스 접근 Client sent an HTTP request to an HTTPS server

1

77

2

대시보드 화면이 달라요 ㅠㅠ

1

64

2

대시보드 접근이 안됩니다!

1

101

2

Ingress실습에 난관이 있습니다

1

71

2

master 노드에서 ssh 로그인 창이 안뜨는 오류

1

86

3

안녕하세요 일프로님 궁금한 거 있습니다

0

53

1

7강 마지막 대시 보드 출력에 관한 문제

1

57

2

Could not resolve host: externalname1; Unknown error

0

63

2

Failed to create pod sandbox

1

93

2

자료실을 못 찾겠습니다 ㅜ ㅡ ㅜ

0

60

2

0/3 nodes are available

1

59

2

Back-off restarting fail~~

1

109

4

쿠버네티스 대시보드 접속 문제

1

92

2

설치관련 질문입니다

1

119

2