1. echo

print기능을 하며 

    1)-e옵션

     -> 제어문자 옵션이 가능(\a를 쓰면 실행시 알림소리가 나옴)

   2)-n옵션

     -> 옵션 불가

   3) * 옵션

     -> ls와 동일하게 파일목록 출력( 공백문자로만 분리되어 보임 )

 

2. touch

입력한 문자들이 파일로 존재하지 않으면 빈파일로 생성하고, 존재하면 현재 시간으로 파일의 시각을 업데이트

one파일 시각 업데이트

    1) rm * 을 입력하면 현재 디렉토리에 모든 것들을 삭제

   2) 이름에 공백을 넣고 싶으면 '' or ""사용

 

3. [] ( square brackets )

[]는 테스트 명령어 이다. 명령어기 때문에 옵션을 넣으려면 공백을 넣어줘야 한다.

공백을 안넣으면 오류 발생

'리눅스 쉘 스크립트' 카테고리의 다른 글

wc, seq, tail, alias  (0) 2020.10.18

gcp환경을 사용했습니다. 

 

쿠버설치

 

 

환경

  1. Master : 2코어 , 7.5GiB메모리, centos 7
  2. worker-node01 2코어 , 7.5GiB메모리, centos 7
  3. worker-node02 2코어 , 7.5GiB메모리, centos 7

 

 

<1. 도커 설치 >

모든 서버에 동일하게 설치 ( sudo su )

 

# yum install -y yum-utils

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

# yum install docker-ce docker-ce-cli containerd.io -y

# systemctl start docker && systemctl enable docker

# docker version

 

 

<2. Kubeadm, kubectl , kubelet 설치 >

모든 서버에 동일하게 설치

 

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

 

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

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

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

EOF

 

# sysctl --system

 

# systemctl stop firewalld 

# systemctl disable firewalld

 

# setenforce 0

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

 

# cat <<EOF > /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

 

# yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

# systemctl start kubelet && systemctl enable kubelet

 

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

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

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

Net.ipv4.ip_forward = 1

EOF

 

#sysctl --system

 

#reboot

 

<3. 마스터 노드 구성 및 네트워크 환경 구성 >

마스터 노드에서만 실행

 

# kubeadm init

 

> 위에서 kubeadm init 했을때 나오는 kubeadm join token값 잘 메모

 

 

# mkdir -p $HOME/.kube

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

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

 

 

이제 마스터노드에서 kubectl get nodes하면 마스터노드 잘 나옴

워커노드들을 연결해야함

 

아까 저장한 토큰을 워커노드 서버에 입력

 

Kubectl get nodes하면 모든 노드 연결완료

 

 

>> 여기까지 하고 kubectl get nodes하면 마스터 및 워커노드들이 나온다.

하지만 notready라고 다올텐데 서로 통신이 가능하도록 weave등을 설치 해줘야 서로 통신이 가능하다 

 

!!!마스터에만 설치 

kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

 

 

이제 kubeclt get nodes하면 모두 Ready

 

마스터 및 워커노드 연결. 끝

실제 쿠버네티스로 서비스 운영을 하면서 많이 사용하거나 들은 리소스들을 정리하고 앞으로 순서대로 알아보려고 한다.

 

1. Node : 컨테이너가 배치된 pod들을 실행시키는 서버

2. Namespace : AWS로 치면 VPC로 물리적인 서버들을 나누는 것처럼 namespace 를 이용하여 가상클러스터를 형성한     다.

3. Pod : kubernetes 객체 모델 중 가장 작은 배포단위 객체. 1개 이상의 컨테이너를 포함

4. replicaset : pod개수에 대한 가용성을 보장해준다. 똑같은 정의를 갖은 Pod를 다수개 생성하고 관리해준다.

5. deployment : replicaset보다 위의 개념으로, pod와 replicaset을 선언적으로 관리할수 있도록 해준다. 보통 배포의 단                       위가 된다. replicaset에 대한 버전관리도 제공.

6. service : 실행되고 있는 pod들에 접근하기 위해 사용하는 기능이다. 

7. ingress : 클러스터안의 service에 외부로 부터 접근하는 것을 관리하는 API 객체. 보통 HTTP이며 로브밸런싱 등 여러                 기능 지원

8. configmap : key -value 형태로 non-confidential Data를 저장할때 사용하는 API 객체이다. pod는 configmap을 환경                     변수, command-line arguments, configuration file로 사용할 수 있다.

9. persistent volumes : pod가 사용할 스토리지의 크기 및 종류를 정의한다.  

+ Recent posts