Git Bash에서 Minikube 명령어를 사용할 때 발생하는 "command not found" 문제를 해결하기 위한 상세 가이드입니다. 이 글에서는 Kubernetes Minikube를 설치하고 Git Bash 환경에서 정상적으로 동작하도록 설정하는 방법을 설명합니다.


1. Kubernetes Minikube 설치

Kubernetes Minikube는 로컬 환경에서 Kubernetes 클러스터를 실행할 수 있는 경량 툴입니다. 설치를 시작하기 전에 시스템 요구사항을 확인하세요.

1.1 시스템 요구사항

  • 운영체제: Windows 10 이상
  • CPU: 2개 이상의 코어
  • RAM: 4GB 이상
  • 가상화: BIOS에서 활성화 필요 (VT-x 또는 AMD-v)

1.2 Minikube 설치

  1. Minikube 공식 다운로드 페이지에 접속합니다.
  2. Windows용 Minikube 바이너리를 다운로드합니다:
  3. 다운로드한 파일 이름을 minikube.exe로 변경하고, 적절한 위치(예: C:\Program Files\Kubernetes\Minikube)에 저장합니다.
  4. 환경 변수에 Minikube 경로를 추가합니다:
    • Windows 검색창에 **"환경 변수 편집"**을 입력하여 시스템 속성 창을 엽니다.
    • 환경 변수 버튼 클릭 > 시스템 변수에서 Path 항목을 선택 > 편집 클릭.
    • C:\Program Files\Kubernetes\Minikube를 새 경로로 추가 후 저장.
  5. 명령 프롬프트(cmd)에서 Minikube가 정상적으로 설치되었는지 확인합니다:정상적으로 버전 정보가 출력되면 설치가 완료된 것입니다.
  6. minikube version

2. Git Bash에서 Minikube 명령어 사용 설정

Git Bash에서 Minikube 명령어를 실행하려면 환경 변수 또는 실행 경로를 추가 설정해야 합니다.

2.1 Git Bash PATH 환경 변수 확인

  1. Git Bash를 열고 다음 명령어로 현재 PATH를 확인합니다:
  2. echo $PATH
  3. Minikube 경로가 포함되어 있지 않다면, 아래 명령어로 경로를 추가합니다:
  4. export PATH=$PATH:/c/Program\ Files/Kubernetes/Minikube
  5. Minikube 명령어가 정상적으로 작동하는지 확인합니다:
  6. minikube version

2.2 실행 파일 확장자 문제 해결

Minikube 실행 파일이 .exe로 저장되어 있다면, Git Bash에서 실행 시 .exe 확장자를 명시해야 할 수도 있습니다:

./minikube.exe start

보다 간단히 사용하기 위해 심볼릭 링크를 생성할 수도 있습니다:

ln -s /c/Program\ Files/Kubernetes/Minikube/minikube.exe /usr/bin/minikube

3. Git Bash에서 Minikube 실행 테스트

  1. Minikube 클러스터를 시작합니다:
  2. minikube start
  3. 클러스터 상태를 확인합니다:
  4. minikube status
  5. Kubernetes 대시보드를 실행합니다:웹 브라우저에서 Kubernetes 대시보드가 열리면 정상적으로 작동하는 것입니다.
  6. minikube dashboard

4. Git Bash에서 "command not found" 문제 해결

4.1 Minikube 경로 설정 확인

Git Bash에서 Minikube 명령어가 작동하지 않는다면, 다음 단계를 확인하세요:

  1. where minikube 명령어로 Minikube 경로를 확인합니다:
  2. where minikube
  3. Minikube 실행 파일 경로가 없다면 환경 변수에 경로를 추가하세요.

4.2 Git Bash PATH 업데이트

Git Bash에서 환경 변수 파일을 업데이트하여 경로를 영구적으로 추가할 수 있습니다:

echo 'export PATH=$PATH:/c/Program\ Files/Kubernetes/Minikube' >> ~/.bashrc
source ~/.bashrc

4.3 Minikube 심볼릭 링크 생성

Git Bash가 Windows 실행 파일을 인식하지 못할 경우, 심볼릭 링크를 생성합니다:

ln -s /c/Program\ Files/Kubernetes/Minikube/minikube.exe /usr/bin/minikube

5. 추가 문제 해결 방법

문제 1: 가상화 지원 여부 확인

Minikube는 가상화를 사용하므로 가상화가 활성화되어 있지 않으면 작동하지 않습니다. BIOS 설정에서 VT-x 또는 AMD-v가 활성화되었는지 확인하세요.

문제 2: Docker 드라이버 설정

Minikube는 Docker 드라이버를 기본으로 사용합니다. Docker Desktop이 설치되어 있는지 확인하고, 설치되어 있지 않다면 Docker 설치 가이드를 참조하세요.

문제 3: Git Bash 관리자로 실행

일부 권한 문제가 발생할 수 있으므로 Git Bash를 관리자 권한으로 실행하세요.

1. Git 설치

1.1. Git 다운로드

  • Git 공식 웹사이트로 이동합니다.
  • 다운로드 페이지에서 Windows용 Git 설치 파일을 다운로드합니다.

1.2. Git 설치

  • 다운로드한 설치 파일을 실행합니다.
  • 설치 마법사의 지침에 따라 기본 설정을 유지하면서 설치를 완료합니다.

 

2. AWS CLI 설치 및 설정

AWS CLI는 AWS 서비스와 상호작용하기 위해 필요한 도구입니다.

2.1. AWS CLI 다운로드 및 설치

2.2. AWS CLI 설정

  • 명령 프롬프트 또는 PowerShell을 열고 다음 명령어를 실행하여 AWS CLI를 설정합니다:
aws configure
  • AWS 액세스 키, 시크릿 액세스 키, 기본 리전 이름(ap-northeast-2 등), 출력 형식을 입력합니다.

 

3. Git 자격 증명 캐시 설정

AWS CodeCommit에 HTTPS를 통해 접근할 때 Git 자격 증명을 올바르게 설정해야 합니다.

3.1. Git 자격 증명 캐시 설정

  • 다음 명령어를 실행하여 Git이 AWS CLI 자격 증명을 사용하도록 설정합니다:
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true

 

 

4. 로컬 리포지토리 설정 및 원격 리포지토리 추가

로컬에 이미 소스가 있는 경우, 기존 리포지토리와 AWS CodeCommit을 연결할 수 있습니다.

4.1. 로컬 리포지토리 초기화

  • Git 리포지토리 디렉토리로 이동합니다:
  • 로컬 디렉토리가 Git 리포지토리가 아닌 경우, Git 리포지토리로 초기화합니다:
git init

 

4.2. 원격 리포지토리 추가

  • AWS CodeCommit의 HTTPS URL을 사용하여 원격 리포지토리를 추가합니다:
git remote add origin https://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/test

 

5. 브랜치 생성 및 푸시

5.1. 브랜치 생성 및 커밋

  • 새 브랜치를 생성하고 체크아웃합니다:
  • 변경 사항을 커밋합니다:
  • 원격 리포지토리에 브랜치를 푸시합니다:
git checkout -b dev
git add .
git commit -m "new branch dev"
git push -u origin dev

 

 

6. 오류 해결

6.1. 403 Forbidden 오류

  • IAM 권한 확인: AWS IAM 사용자에게 AWSCodeCommitPowerUser 정책 또는 필요한 권한이 부여되어 있는지 확인합니다.
  • AWS CLI 자격 증명 확인: aws configure 명령어로 자격 증명을 올바르게 설정했는지 확인합니다.
  • 자격 증명 캐시 설정: 위의 credential.helper 명령어로 자격 증명 캐시가 올바르게 설정되었는지 확인합니다.

EC2 인스턴스 생성 및 Jenkins 설치

  1. EC2 인스턴스를 생성하고, Jenkins를 설치합니다. Amazon Linux 2 AMI를 사용했고 아래 명령어를 실행합니다.
sudo yum update -y

sudo amazon-linux-extras install java-openjdk11 -y

sudo wget -O /etc/yum.repos.d/jenkins.repo \
    https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

sudo yum install jenkins -y

sudo systemctl start jenkins

sudo systemctl enable jenkins

 

 

Jenkins 설정

  1. 브라우저에서 http://<EC2-Instance-Public-IP>:8080으로 접속합니다.
  2. 초기 관리자 비밀번호를 입력합니다. 비밀번호는 아래 명령어로 확인할 수 있습니다.
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

 

플러그인 설치

  1. Jenkins 대시보드에서 "Manage Jenkins" > "Manage Plugins"로 이동합니다.
  2. "Available" 탭에서 "AWS Code Commit Jobs Plugin", "Pipeline: AWS Steps", "AWS CodePipeline", "Docker" 를 검색하고 설치합니다.

 

AWS 자격 증명 설정

  1. AWS IAM 콘솔에서 새로운 사용자 또는 기존 사용자에게 프로그래밍 방식 접근 권한을 부여합니다.
  2. 사용자에게 AWSCodeCommitFullAccess 권한을 부여합니다.
  3. 액세스 키를 생성하여 저장합니다.
  4. AWS CodeCommit에 대한 HTTPS Git 자격 증명을 생성하여 저장합니다.

 

Jenkins에서 자격 증명 추가

  1. Jenkins 대시보드에서 "Manage Jenkins" > "Manage Credentials"로 이동합니다.
  2. "Global" 범위에서 AWS 자격 증명을 추가합니다.
    • Kind: "Username with password"
    • ID: aws-credentials
    • Username: IAM 사용자의 액세스 키 ID
    • Password: IAM 사용자의 시크릿 액세스 키
  3. "Global" 범위에서 CodeCommit Git 자격 증명을 추가합니다 
    • Kind: "Username with password"
    • ID: aws-codecommit_https
    • Username: AWS CodeCommit에서 제공하는 HTTPS Git 사용자 이름
    • Password: AWS CodeCommit에서 제공하는 HTTPS Git 비밀번호

 

 

aws configure 설정

aws configure

AWS Access Key ID: AWS Management Console에서 생성한 액세스 키 ID를 입력합니다.
AWS Secret Access Key: Access Key ID에 대한 비밀 액세스 키를 입력합니다.
Default region name: ap-northeast-2 리전을 입력합니다.
Default output format: JSON을 사용합니다.

 

 

AWS 자격 증명 확인

aws sts get-caller-identity


출력 예시
{
    "UserId": "ABCDEFGHIJKLMNO",
    "Account": "123456789012",
    "Arn": "arn:aws:iam::123456789012:user/YourUserName"
}

 

 

1. Docker 설치

Docker는 대부분의 운영 체제에서 설치할 수 있습니다. 아래는 주요 운영 체제별 설치 방법입니다.

Windows

  1. Docker Desktop for Windows를 다운로드하고 설치합니다.
  2. 설치 과정에서 기본 설정을 따릅니다.
  3. 설치가 완료되면 Docker Desktop을 실행하고, Docker가 정상적으로 작동하는지 확인합니다.

macOS

  1. Docker Desktop for Mac을 다운로드하고 설치합니다.
  2. 설치 과정에서 기본 설정을 따릅니다.
  3. 설치가 완료되면 Docker Desktop을 실행하고, Docker가 정상적으로 작동하는지 확인합니다.

Linux (Ubuntu 예시)

  • 터미널을 열고 다음 명령어를 실행하여 Docker를 설치합니다.
sudo apt-get update
sudo apt-get install -y docker.io

 

  •  Docker 서비스가 자동으로 시작되도록 설정합니다.
sudo systemctl enable docker
sudo systemctl start docker

 

  • 변경 사항을 적용하려면 터미널을 다시 시작하거나 로그아웃 후 로그인합니다.

 


deploying WSL2 distributionsensuring main distro is deployed 에러 해결

 

deploying WSL2 distributionsensuring main distro is deployed

wsl --shutdown bios에서 가상화 기술(VT-x / AMD-V) 활성화wsl --install

yes5.tistory.com

Git

Git 설치는 운영 체제에 따라 다릅니다. 아래에 Windows, 그리고 Linux에 대한 설치 방법을 설명합니다.

 

Windows

  1. Git 공식 사이트에 접속하여 최신 Git 설치 파일을 다운로드합니다.
  2. 다운로드한 설치 파일을 실행합니다.
  3. 설치 마법사의 지시에 따라 설치를 진행합니다. 대부분의 경우 기본 설정을 사용해도 무방합니다.
  4. 설치가 완료되면, 명령 프롬프트나 Git Bash를 열어 Git이 제대로 설치되었는지 확인합니다

Linux

  1. sudo yum update -y
  2. sudo yum install git -y
  3. sudo yum install awscli -y

 

IAM 사용자의 보안 자격 증명

  1. AWS Management Console에 로그인합니다.
  2. IAM 서비스로 이동합니다.
  3. 사용자 목록에서 보안 자격 증명을 관리할 사용자를 선택합니다.
  4. 사용자 세부 정보 페이지에서 "보안 자격 증명" 탭을 클릭합니다.
  5. 여기서 액세스 키, 비밀번호, MFA 설정 등을 관리할 수 있습니다.
  6. HTTPS 인증을 위해 HTTPS Git credential for AWS CodeCommit의 credential을 생성합니다.

 

 

 

 

AWS CodeCommit에서 새로운 리포지토리를 생성

  1. CodeCommit 서비스로 이동합니다. 상단 검색 창에 "CodeCommit"을 입력하고 선택합니다.
  2. 리포지토리(Repositories) 섹션으로 이동합니다. 왼쪽 메뉴에서 "리포지토리(Repositories)"를 클릭합니다.
  3. 리포지토리 생성(Create repository) 버튼을 클릭합니다.
  4. 리포지토리 정보를 입력합니다. 리포지토리 이름과 선택 사항으로 설명을 입력합니다.
  5. 리포지토리 생성(Create repository) 버튼을 클릭하여 완료합니다.

 

 

AWS CodeCommit 리포지토리 클론 및 Git Credential Manager 설정

1. AWS CodeCommit 리포지토리 클론 명령 복사:

  • CodeCommit 서비스로 이동합니다.
  • 리포지토리 목록에서 클론할 리포지토리를 선택합니다.
  • 리포지토리 세부 정보 페이지에서 "클론 URL(Clone URL)" 섹션을 찾습니다.
  • "HTTPS" URL을 선택하고 해당 URL을 복사합니다. 예: https://git-codecommit.ap-northeast-2.amazonaws.com/v1/repos/my-repo.

2. 로컬 컴퓨터에서 Git 실행:

  • 로컬 컴퓨터에서 터미널(또는 명령 프롬프트)을 엽니다.
  • 리포지토리를 클론할 디렉토리로 이동합니다. 예: cd ~/my-projects.

3. 클론 명령 실행:

4. Git Credential Manager를 사용하여 자격 증명 입력:

  • 클론 명령을 실행하면 사용자 이름과 비밀번호를 입력하라는 메시지가 나타납니다.
  • 사용자 이름에는 IAM에서 생성한 Git 자격 증명의 사용자 이름을 입력합니다.
  • 비밀번호에는 IAM에서 생성한 Git 자격 증명의 비밀번호를 입력합니다.

 

 

 

Amazon Linux AMI 2018 EOS로 php 기반 서버들의 OS udate가 요구됨

Amazon linux2 EC2 생성

 

 

apache 설치

sudo yum update -y
sudo yum install -y httpd
sudo systemctl start httpd
sudo systemctl enable httpd
sudo systemctl status httpd

 

php 5.4.16 설치

sudo amazon-linux-extras install epel -y
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php56
sudo yum install -y php php-cli php-common php-devel php-mbstring php-xml php-mysqlnd
sudo systemctl restart httpd
php -v

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

http://hostaddress/info.php

 

sudo rm /var/www/html/info.php

 

php 5.4.16 > php 5.6.40 변경

sudo yum remove php php-cli php-common php-devel php-mbstring php-xml php-mysqlnd -y
sudo amazon-linux-extras install epel -y
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

 

sudo vi /etc/yum.repos.d/remi.repo

[remi]
name=Remi's RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/remi/$basearch/
mirrorlist=https://rpms.remirepo.net/enterprise/7/remi/mirror
enabled=1
priority=1
gpgcheck=1
gpgkey=https://rpms.remirepo.net/RPM-GPG-KEY-remi

[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/7/php56/$basearch/
mirrorlist=https://rpms.remirepo.net/enterprise/7/php56/mirror
enabled=1
priority=1
gpgcheck=1
gpgkey=https://rpms.remirepo.net/RPM-GPG-KEY-remi

remi와 remi-php56 항목에 priority=1 추가

 

sudo yum install -y php php-cli php-common php-devel php-mbstring php-xml php-mysqlnd

php -v

 

vi /etc/php.ini

short_open_tag = ON

 

  • 구성
  • express 2ea (EC2 Ubuntu)
  • nginx 1ea (EC2 Ubuntu)
  • 환경
  • OS : ubuntu20.04
  • Nginx : 1.18.0
  • 조건
  • express 2ea, nginx 1 같은 VPC
  • 가비아에서 도메인 구입 후 nginx IP와 매칭
  • 시나리오
  1. client 호출을 nginx 서버에서 받음.
  2. nginx 서버에서 express 서버로 로드 밸런싱
  3. 한 대의 express 서버 장애 시 다른 정상 express서버에서 서비스

  • Nginx Load Balancing
sudo apt update

sudo apt install nginx

sudo apt update

운영체제에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트하는 명령어

 

sudo apt install nginx

Nginx가 성공적으로 설치되면 nginx -v 커멘드로 확인할 수 있다.

 

nginx -v

 

sudo vi /etc/nginx/nginx.conf

 

/etc/nginx/conf.d 경로를 사용할 것이므로 /etc/nginx/sites-enabled/ 경로와 /etc/nginx/sites-available/ 경로에 defalut 파일이 있다면 삭제한다.

sudo rm -rf /etc/nginx/stites-available/default

디폴트 설정을 삭제하고

 

sudo vi /etc/nginx/conf.d/default.conf
upstream myserver {
        server 172.31.5.101:3000; 
        server 172.31.10.21:3000; 
}

server {
        listen 80;
        server_name your.domain.com;


      location / {
        proxy_pass http://myserver;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }
}

작성 후 저장.

upstream myserver {} ip 주소만 사용에 맞게 변경해주면 된다.   - 해당 시나리오 exrpess 내부 아이피 사용


  • SSL
sudo snap install certbot --classic

sudo apt-get install python3-certbot-nginx

 

ubuntu 18.03 이하 버전에선 python 설치.

sudo apt-get install python-certbot-nginx

 

sudo certbot --nginx

  1. 알림 받을 email 설정
  2. a
  3. y
  4. 도메인 주소

 

sudo vi /etc/nginx/conf.d/default.conf

certbot --nginx 후 default.conf를 확인하면 certbot이 ssl에 필요한 정보들을 자동으로 입력해준다.

 

sudo service nginx restart

ssl 적용 확인

 

도메인/express서버 기능 uri 호출 시 express서버에서 load balancing이 되는것을 확인 할 수 있다.


  • ssl 자동 갱신
sudo vi /etc/crontab

  • crontab 규칙

    * * * * *  유저 이름 명령어
    ┬ ┬ ┬ ┬ ┬
    │ │ │ │ └─ 요일 (0 - 6) (0:일요일, 1:월요일, 2:화요일, …, 6:토요일)
    │ │ │ └─ 월 (1 - 12)
    │ │ └─일 (1 - 31)
    │ └─ 시 (0 - 23)
    └─ 분 (0 - 59)

최하단 59 5 * * * service nginx reload 추가

sudo service cron restart

 

+ Recent posts