'분류 전체보기'에 해당되는 글 204건

minikube 설치

k8s 2024. 11. 19. 10:32

출처 : 도커

Ubuntu | Docker Docs

가상머신에 Minikube 설치하기 (with Docker)

 

 

 

 

 

 

sudo usermod -aG docker server && newgrp docker
wget https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.deb
minikube start --driver=docker
curl -LO https://dl.k8s.io/release/v1.22.1/bin/linux/amd64/kubectl
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl --help
 
 

 

 

 

미니 쿠베 설치완료

 

 

cd  계정 홈디렉토리로 이동

환경변수 편집
vi .bashrc

알리랑스 입력
alias k='kubectl'


환경변수 재실행 
source .bashrc

 

 

 

 


server@ubuntu24:~$ k get pod -n kube-system
NAME                               READY   STATUS    RESTARTS        AGE
coredns-6f6b679f8f-5hh6q           1/1     Running   0               6m25s
etcd-minikube                      1/1     Running   0               6m33s
kube-apiserver-minikube            1/1     Running   0               6m33s
kube-controller-manager-minikube   1/1     Running   0               6m30s
kube-proxy-sb56h                   1/1     Running   0               6m26s
kube-scheduler-minikube            1/1     Running   0               6m33s
storage-provisioner                1/1     Running   2 (6m21s ago)   6m28s
server@ubuntu24:~$





server@ubuntu24:~$ k get nodes
NAME       STATUS   ROLES           AGE   VERSION
minikube   Ready    control-plane   10m   v1.31.0

server@ubuntu24:~$ k get all
NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   11m

server@ubuntu24:~$ k get svc
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   11m
server@ubuntu24:~$


server@ubuntu24:~$ k create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10
deployment.apps/hello-minikube created

server@ubuntu24:~$ k expose deployment hello-minikube --type=NodePort --port=8080
service/hello-minikube exposed

server@ubuntu24:~$ k expose deployment hello-minikube --type=NodePort --port=8080
Error from server (AlreadyExists): services "hello-minikube" already exists

server@ubuntu24:~$ k expose deployment hello-minikube --type=nginx --port=80
The Service "hello-minikube" is invalid: spec.type: Unsupported value: "nginx": supported values: "ClusterIP", "ExternalName", "LoadBalancer", "NodePort"


server@ubuntu24:~$ k get all
NAME                                  READY   STATUS    RESTARTS   AGE
pod/hello-minikube-66fcf97965-n28d6   1/1     Running   0          2m11s

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/hello-minikube   NodePort    10.106.104.194   <none>        8080:30891/TCP   103s
service/kubernetes       ClusterIP   10.96.0.1        <none>        443/TCP          18m

NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/hello-minikube   1/1     1            1           2m12s

NAME                                        DESIRED   CURRENT   READY   AGE
replicaset.apps/hello-minikube-66fcf97965   1         1         1       2m11s
server@ubuntu24:~$

server@ubuntu24:~$ k get svc
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
hello-minikube   NodePort    10.106.104.194   <none>        8080:30891/TCP   112s
kubernetes       ClusterIP   10.96.0.1        <none>        443/TCP          18m
server@ubuntu24:~$



server@ubuntu24:~$ k get all
NAME                                  READY   STATUS    RESTARTS   AGE
pod/hello-minikube-66fcf97965-n28d6   1/1     Running   0          4m4s

NAME                     TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/hello-minikube   NodePort    10.106.104.194   <none>        8080:30891/TCP   3m36s
service/kubernetes       ClusterIP   10.96.0.1        <none>        443/TCP          20m

NAME                             READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/hello-minikube   1/1     1            1           4m5s

NAME                                        DESIRED   CURRENT   READY   AGE
replicaset.apps/hello-minikube-66fcf97965   1         1         1       4m4s
server@ubuntu24:~$ kubectl port-forward service/hello-minikube 8080:8080        Forwarding from 127.0.0.1:8080 -> 8080
Forwarding from [::1]:8080 -> 8080




활성화  외부 내부 연계
server@ubuntu24:~$ minikube addons enable ingress
* ingress is an addon maintained by Kubernetes. For any concerns contact minikube on GitHub.
You can view the list of minikube maintainers at: https://github.com/kubernetes/minikube/blob/master/OWNERS
  - Using image registry.k8s.io/ingress-nginx/controller:v1.11.2
  - Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3
  - Using image registry.k8s.io/ingress-nginx/kube-webhook-certgen:v1.4.3
* Verifying ingress addon...



server@ubuntu24:~$ k get service hello-minikube
NAME             TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
hello-minikube   NodePort   10.106.104.194   <none>        8080:30891/TCP   13m
server@ubuntu24:~$
server@ubuntu24:~$
server@ubuntu24:~$ minikube service hello-minikube
|-----------|----------------|-------------|---------------------------|
| NAMESPACE |      NAME      | TARGET PORT |            URL            |
|-----------|----------------|-------------|---------------------------|
| default   | hello-minikube |        8080 | http://192.168.49.2:30891 |
|-----------|----------------|-------------|---------------------------|
* Opening service default/hello-minikube in default browser...
  http://192.168.49.2:30891






 

블로그 이미지

iesay

,

대용량 서비스 구축

aws 2024. 7. 31. 15:34

1. 앞단에 Cloudflare   proxy 기능은 월 25$ 지불하고 꼭 서야됨

    캐쉬에서   부하의 약 90% 처리 하도록 해야됨 

 

2.  EC2   GA  기능 활성화

 

3. REDIS 구축

 

4. Read Replicaion

 

5. RDS 파라메터 튜닝

 

 

 

'aws' 카테고리의 다른 글

자동 스트리지  (0) 2024.05.28
docker container logs 저장 CloudWatch  (0) 2024.05.07
AWS DMS Postgresql 마이그레이션  (0) 2024.03.25
AWS 보안성 향상  (0) 2024.02.13
AWS 요금 절약 방법  (0) 2024.02.07
블로그 이미지

iesay

,

fluent-bit , influxDB

Prometheus 2024. 7. 19. 15:23

 

docker-compose.yml

version: "3.9"
services:
  fluent-bit:
    image: fluent/fluent-bit:latest
    container_name: fluent-bit
    privileged: true
    user : root
    volumes:
      - /var/lib/docker/containers/:/docker-logs/:ro
      - ./fluent-bit.conf:/fluent-bit/etc/fluent-bit.conf
      - /home/ubuntu/fluent/output:/home/ubuntu/fluent/output

Docker Container Log 정확한 위치

 

 

fluent-bit.conf

[INPUT]
    name              tail
    Tag               node_metrics
    path              /docker-logs/*.log
    path_key         path
    multiline.parser  docker, cri
    Parser docker
    Docker_Mode  On

[SERVICE]
    Flush        1
    Parsers_File parsers.conf

[OUTPUT]
    Name          influxdb
    Match         *
    Host          호스트주소
    Port          8086
    Bucket        버킷명
    Org           조직아이디 0232313aaaa
    HTTP_Token    influxdb 토큰

OUTPUT  influxDB에 던지는 방법이다.

서버에 대한 부하도 굉장히 적다.

 

parsers.conf

[PARSER]
    Name        springboot
    Format      regex
    Regex       (?<time>\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}.\d{1,3}) (?<level>[^ ]*) (?<number>\d*) --- (?<thread>\[[^ ]*) (?<logger>[^ ]*) *: (?<message>[^ ].*)$
    Time_Key    time
    Time_Format %Y-%m-%d %H:%M:%S.%L

[PARSER]
    Name         docker
    Format       json
    Time_Key     time
    Time_Format  %Y-%m-%dT%H:%M:%S.%L
    Time_Keep    On
    # Command      |  Decoder | Field | Optional Action
    # =============|==================|=================
    Decode_Field_As   escaped    log

[MULTILINE_PARSER]
    name          multiline-regex-test
    type          regex
    flush_timeout 1000
    #
    # Regex rules for multiline parsing
    # ---------------------------------
    #
    # configuration hints:
    #
    #  - first state always has the name: start_state
    #  - every field in the rule must be inside double quotes
    #
    # rules |   state name  | regex pattern                  | next state
    # ------|---------------|--------------------------------------------
    rule      "start_state"   "/([a-zA-Z]+ \d+ \d+\:\d+\:\d+)(.*)/"  "cont"
    rule      "cont"          "/^\s+at.*/"                     "cont"

[PARSER]
    Name named-capture-test
    Format regex
    Regex /^(?<date>[a-zA-Z]+ \d+ \d+\:\d+\:\d+) (?<message>.*)/m

한 디렉토리에 3개 파일 만들고 도커 컴포저 실행시키면 된다.

Agent 마다 각각 설치

 

Agent :  node -expoter  ,    fluent

그라파나 :  Prometheus ,  그라파나, influxdb 

node -expoter  Prometheus 수집

fluent(docker log)  influxdb  수집

 

둘다 그라파나에서 대쉬보드에서 보여준다.

 

 

 

influxdb  2 버전이상으로 해야지 관리자 페이지가 보인다.

docker-compose.yml

   version: '3'
services:
  influxdb:
    image: influxdb:2.7.7
    container_name: influx
    ports:
      - '8086:8086'
    environment:
      - INFLUXDB_ADMIN_ENABLED=true
      - INFLUXDB_ADMIN_USER=admin
      - INFLUXDB_ADMIN_PASSWORD=초기패스워드
    tty: true
    stdin_open: true
    volumes:
      - ./influx/config:/etc/influxdb
      - ./influxdb:/var/lib/influxdb

 

 

 

정규식으로 차차 분석 하면 될듯

 

 

 

 

 

 

'Prometheus' 카테고리의 다른 글

신규 설치 error  (0) 2024.04.18
Grafana 기초1  (0) 2021.11.10
블로그 이미지

iesay

,

aws 망구성

2024. 7. 15. 09:42

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

CPUUtilization 간혹가다 90%  50% 유지하다 떨어지고 반복하는 현상

 

파라메터 그룹에서 캐쉬 사이즈 변경

effective_cache_size  {DBInstanceClassMemory/16384}   -> 8000000    8GB
maintenance_work_mem  GREATEST({DBInstanceClassMemory*1024/63963136},65536)     ->  1000000         1GB
work_mem    :  4096    -> 64096      64KB

 

M5.xlarge   16기가라    맞게 수정

 

재부팅이 필요 없는거 부터 우선 적용

블로그 이미지

iesay

,

CloudFlare 연동

hetzner 2024. 7. 1. 13:38

CloudFlare 연동

 

네임 서버를  CloudFlare 에 둬야 된다.

 

 

'hetzner' 카테고리의 다른 글

hetzner 서버 세팅  (0) 2024.06.12
블로그 이미지

iesay

,

hetzner 서버 세팅

hetzner 2024. 6. 12. 14:27

https://www.youtube.com/watch?v=CWisi8Xwh0M

 

 

우리나라도 AWS에 수많은 요금을 지불하는 회사들이 많을것이다.

국내 서비스가 아닌 해외 서비스가 대상이라면 hetzner가 하나의 대안이 될수 있을것이다.

솔라나 서버가 2000대를 hetzner에서 운영 했었다고 한다.

 

그만큼 이제는 꽤나 안정되어 있을것이다.

 

 

 

 

'hetzner' 카테고리의 다른 글

CloudFlare 연동  (0) 2024.07.01
블로그 이미지

iesay

,

자동 스트리지

aws 2024. 5. 28. 17:09

https://cwal.tistory.com/75

 

Amazon RDS - 개요

Amazon RDS RDS는 Relation Database Service의 약자로, AWS에서 제공, 관리하는 DBaaS(DB as a Service) 중 하나이다. Relation이라는 단어에서 바로 알 수 있듯 SQL을 쿼리로 사용하는 관계형 데이터베이스(RDB; Relationa

cwal.tistory.com

 

Storage Autoscaling이 동작하는 경우는 다음과 같다.
  • 남은 저장공간이 전체 용량의 10% 미만일 때
  • low-storage 상태가 5분 넘게 지속될 때
  • 가장 최근 Storage 변경 또는 최적화 이후 6시간이 지났을 때
 
 
그리고 다음 중 가장 큰 값만큼 용량이 추가된다.
  • 5GiB
  • 현재 사용중인 공간의 10%
  • 지난 7시간 동안의 FreeStorageSpace 지표에 따른 예상치

'aws' 카테고리의 다른 글

대용량 서비스 구축  (0) 2024.07.31
docker container logs 저장 CloudWatch  (0) 2024.05.07
AWS DMS Postgresql 마이그레이션  (0) 2024.03.25
AWS 보안성 향상  (0) 2024.02.13
AWS 요금 절약 방법  (0) 2024.02.07
블로그 이미지

iesay

,

도커 용량 초과

docker 2024. 5. 28. 14:44

출처


https://ngela.tistory.com/90

https://shg-engineer.tistory.com/18

https://choco-life.tistory.com/41


https://choco-life.tistory.com/41

 

 

 

$ sudo bash -c 'du -sh /var/lib/docker/*'
2.2M    /var/lib/docker/buildkit
228K    /var/lib/docker/containers
4.0K    /var/lib/docker/engine-id
1.3M    /var/lib/docker/image
72K     /var/lib/docker/network
881M    /var/lib/docker/overlay2
0       /var/lib/docker/plugins
0       /var/lib/docker/runtimes
0       /var/lib/docker/swarm
0       /var/lib/docker/tmp
24K     /var/lib/docker/volumes
[ec2-user]$


$ df -Th
Filesystem       Type      Size  Used Avail Use% Mounted on
devtmpfs         devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs            tmpfs     1.9G     0  1.9G   0% /dev/shm
tmpfs            tmpfs     766M  828K  765M   1% /run
/dev/nvme0n1p1   xfs       8.0G  3.8G  4.2G  48% /
tmpfs            tmpfs     1.9G     0  1.9G   0% /tmp
/dev/nvme0n1p128 vfat       10M  1.3M  8.7M  13% /boot/efi
tmpfs            tmpfs     383M     0  383M   0% /run/user/1000



$ du -h --max-depth=2
4.0K    ./.ssh
447M    ./market/market-docker
447M    ./market
136K    ./.docker/buildx
140K    ./.docker
8.0K    ./promtail
0       ./.config/procps
0       ./.config
447M    .



# du -hs *
40K     36b8eb11a99e9d22d719c2da652a266076cd96f7ead83f20648df07c2bd48580
649M    67372f8bc0510b890991bce2c70a39b1cd4a9d978b00cd9677687c2374b67c7a
48K     765b3adbc02abae7a2405979d6ec64d2a91fd5f265941f0fa6bbede54604c7a8











 



$ vi /etc/logrotate.d/docker



/var/lib/docker/containers/*/*.log {
  rotate 3
  daily
  compress
  missingok
  copytruncate
}

$ logrotate -fv /etc/logrotate.d/docker




 

vi /etc/docker/daemon.json

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "5",
    "labels": "production_status",
    "env": "os,customer"
  }
}

'docker' 카테고리의 다른 글

docker-compse Elasticsearch 설치  (0) 2023.05.18
블로그 이미지

iesay

,

IAM 역할 생성

https://bigco-growth-diary.tistory.com/40

 

[CloudWatch #3] Cloudwatch Agent 설치[Memory/Disk 수집]

Cloudwatch Agent란? 클라우드워치 에이전트는 AWS의 모니터링 서비스인 Amazon CloudWatch와 함께 사용되는 소프트웨어입니다. Cloudwatch에서 기본으로 제공하는 모니터링 외에 추가로 메모리, 디스크 사용

bigco-growth-diary.tistory.com

 

1] EC2 인스턴스에   보안 역할 등록 

2] Cloud watch 로그 그룹 생성 

3] Agent 설치

amazon-cloudwatch-agent   설치 

sudo yum install amazon-cloudwatch-agent


접속 정보 설정

sudo aws configure


AWS Access Key ID [None]: @@@@@
AWS Secret Access Key [None]: @@@@@
Default region name [None]: ap-northeast-2
Default output format [None]: json


연결확인 
$aws sts get-caller-identity

 

4] 설정파일 경로 /opt/aws/amazon-cloudwatch-agent/bin/logs.json

로그 그룹 네임 일치 필요

인스턴스 마다 생성하여 검색효과 극대화

{
        "logs": {
                "logs_collected": {
                        "files": {
                                "collect_list": [
                                        {
                                                "file_path": "/var/lib/docker/containers/*/*.log",
                                                "log_group_name": "로그그룹네임"
                                        }
                                ]
                        }
                }
        }
}

 

5] 실행

$ sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/logs.json -s
$ sudo /bin/systemctl restart amazon-cloudwatch-agent.service

systemctl status amazon-cloudwatch-agent

 

6] 동작 확인

amazon-cloudwatch-agent-ctl -m ec2 -a status

{
  "status": "running",
  "starttime": "2024-05-07T03:31:14+00:00",
  "configstatus": "configured",
  "version": "1.300033.0"
}


systemctl status amazon-cloudwatch-agent


/var/log/amazon 로그 확인

 

 

7] 로그 확인

쌓여지는 어플리케이션 로그를 확인

 

 

 

8] 저장된 로그는  주단위    s3로  싼 스토리지에 별도로 저장

'aws' 카테고리의 다른 글

대용량 서비스 구축  (0) 2024.07.31
자동 스트리지  (0) 2024.05.28
AWS DMS Postgresql 마이그레이션  (0) 2024.03.25
AWS 보안성 향상  (0) 2024.02.13
AWS 요금 절약 방법  (0) 2024.02.07
블로그 이미지

iesay

,