반응형

1. 설치 환경

 o 가상 서버 환경 3대 구성

 o Deploy 서버와 Ceph Node 3대로 구성

 

2. Ceph Package 설치

o Ceph 노드 모두 설치

$ apt install ntp python -y

$ sudo useradd -d /home/cephnode -m cephnode

$ sudo passwd cephnode
암호 임력 : test123


$ echo "cephnode ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephnode

$ sudo chmod 0440 /etc/sudoers.d/cephnode

 

o /etc/hosts 파일 등록

10.0.0.5 node01
10.0.0.4 node02
10.0.0.6 node03

 

o Deploy 노드 설치

 - Ceph Deploy 패키지 설치

$ wget -q -O- 'https://download.ceph.com/keys/release.asc' | sudo apt-key add -

$ echo deb https://download.ceph.com/debian-luminous/ $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/ceph.list

$ sudo apt update

$ sudo apt install ceph-deploy


 

 - Ceph 유저 생성

$ sudo useradd -d /home/cephdeploy -m cephdeploy

$ sudo passwd cephdeploy
암호 임력 : test123

$ echo "cephdeploy ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephdeploy

$ sudo chmod 0440 /etc/sudoers.d/cephdeploy

 - Key 복사 및 설정

$ ssh-keygen -t rsa
$ ssh-copy-id cephnode@node01
$ ssh-copy-id cephnode@node02
$ ssh-copy-id cephnode@node03

 

o 키 등록

$ vim ~/.ssh/config

Host node01
   Hostname node01
   User cephnode
Host node02
   Hostname node02
   User cephnode
Host node03
   Hostname node03
   User cephnode

 

3. Ceph Cluster 구성

### ceph 설정 폴더 생성
$ mkdir my-cluster

$ cd my-cluster

### Ceph Cluster 초기화 작업
$ ceph-deploy purge node01 node02 node03
$ ceph-deploy purgedata node01 node02 node03
$ ceph-deploy forgetkeys
$ rm ceph-deploy-ceph.log

### Ceph Cluster 구성
### Monitor Daemon과 MGR은 node01 deploy 서버에 구성
$ ceph-deploy new node01
$ ceph-deploy install node01 node02 node03
$  ceph-deploy mon create-initial
$  ceph-deploy admin node01 node02 node03
$  ceph-deploy mgr create node01  
$  ceph-deploy osd create --data /dev/vdb node01
$  ceph-deploy osd create --data /dev/vdb node02
$  ceph-deploy osd create --data /dev/vdb node03
$  ceph-deploy mds create node01
$  ceph-deploy rgw create node01

반응형

'Linux' 카테고리의 다른 글

Linux local repository 설정 방법  (0) 2023.08.10
Linux SSH 접속시 암호 늦게뜨는것 해결하기  (0) 2023.08.10
wget 하위 디렉토리 다운로드  (0) 2023.08.10
Virtual Machine vs Container  (0) 2023.08.10
Ceph Storage 노드 추가  (0) 2023.08.10
반응형

1. Linux Local Repostiroy 설정 방법

* lcoal repository 설정 방법

1) 외부 통신 가능한 환경인 경우

$ yum install createrepo -y

$ mkdir /test

$ createrepo /test

$ vim /etc/yum.repo.d/test.repo

[test]
name=test
baseurl=file:///root/test/
gpgcheck=0
enabled=1

$ yum clean all

$ yum repolist

 

2) 외부 통신이 불가능한 경우

* 업로드된 파일 해당 서버 업로드

$ rpm -ivh *.rpm

$ mkdir /test

$ createrepo /test

$ vim /etc/yum.repo.d/test.repo

[test]
name=test
baseurl=file:///root/test/
gpgcheck=0
enabled=1

$ yum clean all

$ yum repolist

 

반응형

'Linux' 카테고리의 다른 글

Ceph Install Guide Using Ceph-Deploy  (0) 2023.08.10
Linux SSH 접속시 암호 늦게뜨는것 해결하기  (0) 2023.08.10
wget 하위 디렉토리 다운로드  (0) 2023.08.10
Virtual Machine vs Container  (0) 2023.08.10
Ceph Storage 노드 추가  (0) 2023.08.10
반응형

1. Linux SSH 접속 시 로그인/암호 늦게 뜨는것(딜레이) 해결하기

어느순간 Linux 서버 접근하려니 계정 입력 이후 암호 입력창이 늦게 나온다.

이런 경우 다음과 같은 서버의 설정이로 일부 해결할 수 있다.

  • SSH 접속시 암호 입력창 늦게 뜨는것 확인하기
$ vim /etc/ssh/sshd_config

# yes를 no로 바꾸기
GSSAPIAuthentication no 

# 주석을 해제하고 no로 설정
UseDNS no 

$ service sshd restart

 

 

반응형

'Linux' 카테고리의 다른 글

Ceph Install Guide Using Ceph-Deploy  (0) 2023.08.10
Linux local repository 설정 방법  (0) 2023.08.10
wget 하위 디렉토리 다운로드  (0) 2023.08.10
Virtual Machine vs Container  (0) 2023.08.10
Ceph Storage 노드 추가  (0) 2023.08.10
반응형

1. wget을 이용한 디렉토리 다운로드 명령어 모음

o wget --help 시 많은 명령어가 나온다. 하지만 자주 쓰는 필요한것들만 정리.


-m : 웹사이트를 미러링하는 옵션. 웹페이지, 하위 링크, 이미지, 스타일시트 등을 재귀적으로 다운로드합니다.
-p : 모든 필요한 파일을 다운로드하는 옵션입니다. 웹페이지를 구성하는 모든 리소스(이미지, 스타일시트 등)를 다운로드합니다.
-E : 다운로드된 파일의 확장자를 조정하는 옵션입니다. 서버가 확장자를 제공하지 않거나 잘못된 확장자를 가지는 경우, 이 옵션을 사용하여 파일의 확장자를 조정합니다.
-k : 다운로드한 HTML 파일의 링크를 조정하는 옵션입니다. HTML 파일 내의 링크를 로컬 파일로 변환하여 링크가 원격 서버에 의존하지 않도록 합니다.
-K : 변환된 파일을 백업하는 옵션입니다. 변환된 파일의 원본을 백업 파일로 저장합니다.
-np : 상위 디렉토리로 이동하지 않는 옵션입니다. 다운로드한 파일을 현재 디렉토리에 저장하고, 상위 디렉토리로 이동하지 않습니다.


### url 주소 다운로드
$ wget {URL}


### 파일 이름 저장하여 다운로드
$ wget -O {파일이름} {URL}

### 백그라운드로 실행
$ wget -b {URL}


### 파일, 폴더 전체 다운로드 
$ wget -r {URL}


### 하위 디렉토리 다운로드
$ wget -m -p -E -k -K -np {URL}

 

 

 

 

반응형

'Linux' 카테고리의 다른 글

Linux local repository 설정 방법  (0) 2023.08.10
Linux SSH 접속시 암호 늦게뜨는것 해결하기  (0) 2023.08.10
Virtual Machine vs Container  (0) 2023.08.10
Ceph Storage 노드 추가  (0) 2023.08.10
Phython 기본 버전 변경  (0) 2023.08.10
반응형

$ vim nginx-deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

 

 

$ vim nginx-service.yaml

apiVersion: v1
kind: Service
metadata:
name: ngnix-service
spec:
selector:
app: nginx
type: NodePort
ports:
- protocol: TCP
port: 80
targetPort: 80
반응형

'Linux > Kubernetes' 카테고리의 다른 글

Kubernetes install in CentOS 7.8  (0) 2023.08.10
반응형

* Kubernetes Install in CentOS 7.8

- 서버 구성

Name IP Role
master 10.0.0.5 master
worker 10.0.0.4 worker

 

OS 설정
### hosts 등록
$ vim /etc/hosts
10.0.0.8 master
10.0.0.4 worker

### Selinux 비활성화
$ vim /etc/selinux/config
SELINUX=disabled

### 방화벽 중지
$ systemctl stop firewalld
$ systemctl disable firewalld

### Swap 메모리 OFF
$ swapoff -a

### 커널 설정 변경
$ yum install bash-completion rsync git vim net-tools tree bridge-utils

$ echo "vm.swappiness=1" >> /etc/sysctl.d/docker.conf

$ echo "net.ipv4.ip_forward=1" >> /etc/sysctl.d/docker.conf

$ sysctl -w vm.swappiness=1
$ sysctl -w net.ipv4.ip_forward=1

$ vim  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

$ sysctl --system

 

Docker 설치
$  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 -y install docker-ce docker-ce-cli containerd.io
$ mkdir -p /etc/docker/
$ cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

$ systemctl daemon-reload
$ systemctl enable docker
$ systemctl start docker
$ systemctl start docker && systemctl enable docker

 

Kubernetes 설치 준비
$ vim /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=0
gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl

또는 

[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-$basearch
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

### 2022.05.19 업데이트
sudo bash -c '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=kube*
EOF'
###

$ yum repolist

### 최신 버전 설치시 하단 명령어
$ yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

$ systemctl enable kubelet && systemctl start kubelet

 

Master, Worker 노드 설치

 

### Master 노드 ###
### ip는 해당 내부 IP
$ kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.0.0.5
....
kubeadm join 10.0.0.5:6443 --token 4cbvqr.btjrgtfqyj649jtl \ --discovery-token-ca-cert-hash sha256:4fb93a143d8a5cc5c755a62f04d1d40332abfe7684b057e789007b9b5adebdf0

### 위 명령시 아래와 같은 에러 발생시 조치사항 ###
[init] Using Kubernetes version: v1.24.0 [preflight] Running pre-flight checks error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR CRI]: container runtime is not running: output: time="2022-05-19T15:53:31+09:00" level=fatal msg="getting status of runtime: rpc error: code = Unimplemented desc = unknown service runtime.v1alpha2.RuntimeService" , error: exit status 1 [preflight] If you know what you are doing, you can make a check non-fatal with
--ignore-preflight-errors=...
To see the stack trace of this error execute with --v=5 or higher

$ rm -rf /etc/containerd/  
$ reboot
### 위 폴더 삭제 이후 서버 모두 재부팅


### 위 내용을 Worker 노드에 설치해야하니 복사
### Worker 노드
$ kubeadm join 10.0.0.5:6443 --token 4cbvqr.btjrgtfqyj649jtl \ --discovery-token-ca-cert-hash sha256:4fb93a143d8a5cc5c755a62f04d1d40332abfe7684b057e789007b9b5adebdf0

### Master 노드
$ export KUBECONFIG=/etc/kubernetes/admin.conf

### Master 노드
### CNI Flannel 설치 
$ kubectl apply -f 
https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

 

마스터 실행 확인
$ kubectl get pods --all-namespaces

 

 

 

 

 

Node NotReady 이슈

 

o 위 그림처럼 Pending 및 Not Ready 이슈시 하단 내용 확인

o Kubernets Not Ready & Coredns Pending 이슈 확인

o kube-flannel.yaml 적용
$ kubectl edit cm corends -n kube-system 
-> 하단 24번줄 loop 주석처리 및 저장

$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

24줄 주서처리

o 이후 coredns 서비스 정상 작동 확인 완료 및 NotReady -> Ready 변경 확인

Running 상태 확인
Ready 상태 확인

 

반응형

'Linux > Kubernetes' 카테고리의 다른 글

Kubernetes Apache Web Test  (0) 2023.08.10

+ Recent posts