티스토리 뷰
7탄!! 쿠버네티스에 pod 올리자! pod? 뭐에요?
9탄!! 쿠버네티스 오토스케일링(kubernetes autoscaling)
#기타 참고하기
헬름챠트로 올리기[샘플]11) 쿠버네티스 가상스토리지(Ceph) 설치
1. CentOS 7에 EPEL 추가
다음 명령을 사용하여 EPEL 리포지토리를 CentOS 7 시스템에 추가 할 수 있습니다.
$ sudo yum install -y epel-release
방화벽 정지는 기본입니다.
$service firewalld stop
2. EPEL과 함께 누락 된 패키지
EPEL 리포지토리의 패키지는 현재 RHEL 릴리스의 종속성에 대해 작성되며 CentOS 프로젝트에 의해 RHEL에서 정기적으로 가져옵니다.
그러나 간혹 스냅 된 RPM을 빌드하는 데 사용 된 특정 패키지의 정확한 버전을 아직 기본 CentOS 저장소로 가져 오지 않은 경우가 있습니다. 이로 인해 다음과 유사한 패키지 오류가 발생할 수 있습니다.
Problem: package snapd-2.42.1-1.el8.x86_64 requires snapd-selinux = 2.42.1-1.el8, but none of the providers can be installed.
Problem: package snapd-2.42.1-1.el8.x86_64 requires snapd-selinux = 2.42.1-1.el8,
but none of the providers can be installed.
이러한 경우 EPEL 패키지가 업데이트되기를 기다리지 않고 연속 릴리스 (CR) 저장소를 활성화 할 수 있습니다 . 이 저장소에는 CentOS의 다음 릴리스로 예정된 패키지가 포함되어 있으며 누락 된 버전 불일치 종속성을 충족해야합니다.
3. 스냅 설치
EPEL 리포지토리를 CentOS 설치에 추가 한 다음 스냅 된 패키지 를 설치하십시오 .
$ sudo yum install -y snapd
설치 후에는 systemd 주요 스냅 통신 소켓 요구를 관리 장치는 사용 가능합니다 :
$ sudo systemctl enable --now snapd.socket
클래식 스냅 지원 을 활성화하려면 다음을 입력하여 /var/lib/snapd/snap와 사이에 기호 링크를 만듭니다 /snap.
$ sudo ln -s /var/lib/snapd/snap /snap
스냅의 경로가 올바르게 업데이트되도록 로그 아웃했다가 다시 로그인하거나 시스템을 다시 시작하십시오.
Snap이 설치되어 준비되었습니다! 데스크톱을 사용하는 경우 다음 단계는 Snap Store 앱 을 설치하는 것 입니다.
4. MicroK8 설치
MicroK8s는 거의 모든 컴퓨터에서 실행하고 사용할 수있는 최소의 경량 Kubernet을 설치합니다. 스냅으로 설치할 수 있습니다.
snap install microk8s --classic --channel=1.18/stable
혹시나 아래와 같은 메세지가 나오면 30초 정도 기다려 주세요
5. 그룹에 가입
MicroK8s는 관리자 권한이 필요한 명령을 원활하게 사용할 수 있도록 그룹을 만듭니다. 현재 사용자를 그룹에 추가하고 .kube캐싱 디렉토리에 액세스 하려면 다음 두 명령을 실행하십시오.
$sudo usermod -a -G microk8s $USER
$sudo chown -f -R $USER ~/.kube
$su - $USER
1) 상태 확인
$microk8s status --wait-ready
2) 쿠버네 티스에 액세스
MicroK8s는 kubectlKubernetes에 액세스하기 위해 자체 버전을 번들로 제공합니다.
이를 사용하여 Kubernetes를 모니터링하고 제어하는 명령을 실행하십시오.
3) 예를 들어, 노드를 보려면 ..MicroK8s는 네임 스페이스 kubectl명령을 사용하여
기존 kubectl 설치와의 충돌을 방지합니다. 기존 설치가없는 경우 다음 ~/.bash_aliases과 같이
별칭을 추가하는 것이 더 쉽습니다.
$microk8s kubectl get nodes
$microk8s kubectl get services
$alias kubectl='microk8s kubectl'
4)앱 배포
물론 Kubernetes는 앱과 서비스를 배포하기위한 것입니다. kubectl모든 Kuberenetes와 마찬가지로
명령을 사용하여 이를 수행 할 수 있습니다.
데모 앱을 설치하십시오.
설치하는 데 1 ~ 2 분이 소요될 수 있지만 상태를 확인할 수 있습니다.
$microk8s kubectl create deployment kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1
$microk8s kubectl get pods
$microk8s kubectl get pods -w
6. 애드온 사용
MicroK8s는 순수하고 가벼운 Kubernetes에 최소 구성 요소를 사용합니다. 그러나 간단한 DNS 관리부터 Kubeflow를 통한 머신 러닝에 이르기까지 Kubernetes에 추가 기능을 제공하는 사전 패키지 구성 요소 인 "추가 기능"을 사용하여 몇 번의 키 입력으로 많은 추가 기능을 사용할 수 있습니다! 시작하려면 서비스 간 통신을 용이하게하기 위해 DNS 관리를 추가하는 것이 좋습니다. 스토리지가 필요한 애플리케이션의 경우 'storage'애드온은 호스트에서 디렉토리 공간을 제공합니다. 이것들은 설정하기 쉽습니다.
microk8s enable dns storage
7. MicroK8 시작 및 중지
MicroK8은 중지하기로 결정할 때까지 계속 실행됩니다. 다음과 같은 간단한 명령으로 MicroK8을 중지하고 시작할 수 있습니다.
microk8s stop
MicroK8s 및 해당 서비스를 중지합니다. 다음을 실행하여 언제든지 다시 시작할 수 있습니다.
microk8s start
8. 몽고디비 replica set 설정을 사용한다.
apiVersion: v1
kind: Service
metadata:
name: mongodb-service
labels:
name: mongo
spec:
ports:
- port: 27017
targetPort: 27017
clusterIP: None
selector:
role: mongo
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mongod
spec:
serviceName: mongodb-service
replicas: 3
selector:
matchLabels:
role: mongo
environment: test
replicaset: MainRepSet
template:
metadata:
labels:
role: mongo
environment: test
replicaset: MainRepSet
spec:
containers:
- name: mongod-container
image: mongo:3.4
command:
- "numactl"
- "--interleave=all"
- "mongod"
- "--bind_ip"
- "0.0.0.0"
- "--replSet"
- "MainRepSet"
- "--auth"
- "--clusterAuthMode"
- "keyFile"
- "--keyFile"
- "/etc/secrets-volume/internal-auth-mongodb-keyfile"
- "--setParameter"
- "authenticationMechanisms=SCRAM-SHA-1"
resources:
requests:
cpu: 0.2
memory: 200Mi
ports:
- containerPort: 27017
volumeMounts:
- name: secrets-volume
readOnly: true
mountPath: /etc/secrets-volume
- name: mongodb-persistent-storage-claim
mountPath: /data/db
volumes:
- name: secrets-volume
secret:
secretName: shared-bootstrap-data
defaultMode: 256
volumeClaimTemplates:
- metadata:
name: mongodb-persistent-storage-claim
annotations:
volume.beta.kubernetes.io/storage-class: "standard"
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
$ openssl rand -base64 741 > ./replica-set-key.txt
$ kubectl create secret generic shared-bootstrap-data --from-file=internal-auth-mongodb-keyfile=./replica-set-key.txt
9. 설정을 사용해 몽고디비를 가동한다.
kubectl apply -f replica-sets/mongodb-rc.yaml
10. 다음과 같은 명령으로 상황을 모니터링 하면 좋다.
kubectl get all -o wide
kubectl get pvc -o wide
kubectl get nodes -o wide
11. 정상적으로 실행되지 않고, pending 으로 시간이 걸린다면, 삭제했다가 다시 실행해본다.
(전체 삭제)
kubectl delete -f replica-sets/mongodb-rc.yaml
(pvc 삭제)
kubectl delete pvc mongodb-persistent-storage-claim-mongod-0
12. 정상적이라면 다음처럼 나온다.
kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
mongod-0 1/1 Running 0 6m45s 10.1.32.109 192.168.77.20
mongod-1 1/1 Running 0 6m43s 10.1.70.10 kube-mk8s
mongod-2 1/1 Running 0 6m42s 10.1.32.110 192.168.77.20
mongod-3 1/1 Running 0 6m41s 10.1.70.11 kube-mk8s
13. mongo 접속하여 replica set 설정한다. (세부 설정은 별도로 정리 예정)
(kube => pod 접속)
kubectl exec -ti mongod-0 -c mongod-container bash
(pod 내에서 mongo console 실행)
mongo
14. 해당 replica set 의 몽고 서버에 접속하기 위해 dns 설정이 잘 되었는지 확인해본다.
kubectl apply -f https://k8s.io/examples/admin/dns/busybox.yaml
kubectl exec -ti busybox -- nslookup mongod-0.mongodb-service
15. 설정을 확인해서 정상적으로 pod IP 가 나와야 한다.
이런식으로 나오면 실패.
Server: 127.0.0.53
Address 1: 127.0.0.53
nslookup: can't resolve 'mongod-0.mongodb-service'
16. 아래처럼 나와야 정상.
Server: 10.152.183.10
Address 1: 10.152.183.10 kube-dns.kube-system.svc.cluster.local
Name: mongod-0.mongodb-service
Address 1: 10.1.32.109 mongod-0.mongodb-service.default.svc.cluster.local
'3. 쿠버네티스의 모든것' 카테고리의 다른 글
elasticsearch.yaml 테스트중 (0) | 2020.06.25 |
---|---|
10탄!! K8S Namespace 생성방법 (1) | 2020.06.24 |
11탄!! 쿠버네티스 용어 정리 (0) | 2020.04.07 |
nosql VS NEW sql 차이 (0) | 2020.04.06 |
9탄!! 쿠버네티스 오토스케일링(kubernetes autoscaling) (0) | 2020.04.02 |
- Total
- Today
- Yesterday
- (InstantClient) 설치하기(HP-UX)
- 5.4.0.1072
- 코로나19
- 튜닝
- ubuntu
- 트리이스
- directory copy 후 startup 에러
- 앤시블
- 스토리지 클레스
- 키알리
- 우분투
- startup 에러
- 커널
- ORACLE 트러블 슈팅(성능 고도화 원리와 해법!)
- 오라클 인스턴트클라이언트(InstantClient) 설치하기(HP-UX)
- 버쳐박스
- 설치하기(HP-UX)
- 쿠버네티스
- CVE 취약점 점검
- 오라클
- [오라클 튜닝] sql 튜닝
- MSA
- 오라클 홈디렉토리 copy 후 startup 에러
- Oracle
- pod 상태
- K8s
- [오라클 튜닝] instance 튜닝2
- 테라폼
- 오라클 트러블 슈팅(성능 고도화 원리와 해법!)
- 여러서버 컨트롤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |