inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

쿠버네티스 설치용 vagrant file

461

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

네, 감사합니다! 

이거 지금 부터 들어도 괜찮을까요 ?? 시간이 꽤지난거같은데 .. 뭐 최신하고 아에 안맞을까요 .

0

36

1

pod kubetm/app 에서 image를 갑자기 못가져 오는거 같습니다.

1

42

2

3. Node Schedule 중 pod-5가 마스터 노드에 배치됩니다.

1

51

2

volume hostpath의 강의에 관해 질문이 있습니다.

1

40

2

컨트롤러

1

75

2

네임스페이스+파드

0

75

3

강의영상 과 자료

0

84

2

IP 가 어딨나요?

1

72

2

설치 문제 없는건가요?

1

57

1

xshell 접속오류

1

77

2

[15. ConfigMap, Secret - 실습] Env (File) 실습 시 문의사항

1

91

2

Node Schedule 실습 시 pod3 생성 시 메모리 요청량이 올라가지 않는 사항

1

71

1

Guest OS

1

76

2

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

1

99

2

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

0

99

2

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

1

127

2

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

1

177

4

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

1

103

3

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

1

137

1

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

1

137

2

configMap 파일생성

1

118

2

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

1

136

2

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

1

130

2

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

1

102

2