728x90

[CentOS 7] 아파치 톰캣(Tomcat) 설치

 2020-10-12

 LINUXTOMCAT

아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너(또는 웹 컨테이너)만 있는 웹 애플리케이션 서버이다.
톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다.
톰캣은 관리툴을 통해 설정을 변경할 수 있지만, XML 파일을 편집하여 설정할 수도 있다. 그리고, 톰캣은 HTTP 서버도 자체 내장하기도 한다.

 

※ Tomcat 설치전에 JAVA를 설치 및 설정을 합니다.


출처위키백과

1. 다운로드

http://archive.apache.org/dist/tomcat/tomcat-8/ 사이트에서 최신 버전을 확인하고 다운로드합니다.

[hgko@localhost ~]$ cd /home/download
[hgko@localhost download]$ wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.59/bin/apache-tomcat-8.5.59.tar.gz

오프라인 환경에서는 Tomcat 8 Download 사이트 접속해서 tar.gz 파일을 직접 다운로드 후 서버에 전송합니다.

 

2. 설치

먼저 tar 명령어를 사용하여 압축을 풀어 줍니다. 압축이 풀리면 모든 사용자가 사용하고 관리가 편리하도록 Root 계정으로 접속 후 해당 폴더로 이동 시켜줍니다.

# 압축 해제
[hgko@localhost download]$ tar zxvf apache-tomcat-8.5.59.tar.gz

#
폴더 이동
[hgko@localhost download]$ sudo su
[root@localhost download]$ mv /home/download/apache-tomcat-8.5.59 /usr/local/lib

3. 환경 설정

[root@localhost ~]$ vi /etc/profile

 

JAVA_HOME=/usr/local/java
JRE_HOME=/usr/local/java
CATALINA_HOME=/usr/local/lib/apache-tomcat-8.5.59
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH CATALINA_HOME

Tomcat 설정 부분(CATALINA)만 수정하면 됩니다. 설정이 완료되면 반영합니다.

# 설정 반영
[root@localhost ~]$ source /etc/profile

#
설정 확인
[root@localhost ~]$ echo $CATALINA_HOME

4. 방화벽 설정

현재 톰캣 포트가 8080이기 때문에 8080 포트에 대한 방화벽을 설정합니다.

[root@localhost ~]$ firewall-cmd --permanent --zone=public --add-port=8080/tcp
[root@localhost ~]$ firewall-cmd --reload

5. 실행 및 중지

[root@localhost ~]$ cd /usr/local/lib/apache-tomcat-8.5.59/bin
#
실행
[root@localhost bin]$ ./startup.sh
#
중지
[root@localhost bin]$ ./shutdown.sh

6. 실행 확인

http://localhost(ip 주소):8080 에 접속해서 확인합니다.

[root@localhost bin]$ tail -f /usr/local/lib/apache-tomcat-8.5.59/logs/catalina.out

tail 명령어를 사용하여 로그 내용을 출력해서 진행 상태를 파악할 수 있습니다.

 

728x90
728x90

VirtualBox에 OS를 설치하고 Network이 되는지 확인해 보면 일반적으로 별 탈 없이 잘 되곤한다. 잘 되니까 별다르게 신경쓰는 일이 없는 것이 사실이다. 네트워크와 관련된 작업을 하지 않는 이상 별 다르게 변경해야할 필요도 없다.

 

하지만 일반 사용자를 넘어서 advanced user가 되고자 한다면 기본 설정 외에 어떤 설정이 가능한지 한 번 살펴볼 필요가 있다. 혹시 아는가. 알고 보면 나에게 최적화된 설정은 기본 설정이 아니라 생각지도 못한 다른 설정일 수도 있다. 

 

매뉴얼에 따르면 가산 머신당 총 8개까지 가상 네트워크(가상 PCI 이더넷 카드) 생성 및 설정이 가능하다. 4개는 설정 화면을 통해서 가능하고 나머지는 VboxManage command를 통해서 가능하다.

 

우선 하나의 설정만 제대로 할 줄 알면 나머지 것들은 추가하는 수준일테니 우선 하나의 가상 네트워크를 설정하는 방법을 알아보도록 하자.

 

 

가상 네트워크를 설정하기 위해서는 다음의 것들을 정해야 한다. 

 

-. 어떤 하드웨어를 통해 가상화할 것인가. 

: PC에 설치된 Ethernet 카드 중 어떤 카드를 통해 가상화하여 네트워크를 사용할 것인지 정한다.

 

-. 어떤 가상화 모드로 설정할 것인가. 

: 설정가능한 6개의 가상화 모드 중 어떤 것을 사용할 것인지 정한다. 기본으로는 NAT가 설정되어 있다.

 

(참고로 VirtualBox의 네트워크라는 표현을 사용하기는 하였지만 정확히 말하면 virtualbox manual에서 볼 수 있듯이 virtual networking, 즉  virtualbox의 가상 네트워킹이다.)

 

위 2가지 중에 "어떤 가상화 모드로 설정할 것인가"에 대해 어떤 가상화 모드가 있고, 선택이 가능한지 알아보자.

 


 

우선 기본적으로 아래와 같이 NAT로 설정되어 있다. 

 

> 처음 화면에서 확인할 수 있는 기본 설정

 

 

이를 변경하기 위해서 설정하기 원하는 가상 머신을 선택한 후 (위에서는 Ubuntu 16.04가 선택) "머신 > 설정 > 네트워크"를 선택한다.

 

"다음에 연결됨(A):" 부분 옆 Combobox를 열어보면 설정 가능한 네트워크 종류를 확인할 수 있다. 

 

 


연결되지 않음

NAT

NAT 네트워크

브리지 어댑터

내부 네트워크

호스트 전용 어댑터

일반 드라이버


 

하나씩 특징을 살펴보면 다음과 같다.

 

"연결되지 않음"


해당 모드는 네트워크 카드는 존재하지만 마치 케이블을 꼽지 않은 것과 같이 연결하지 않은 것과 같이 동작하는 것이다. 

 

 

 

NAT (Network Address Translation)


  • 가상머신 내부 네트워크 -> Host PC 외부 네트워크 단방향 통신 가능
  • Host PC 내의 가상 머신 간의 통신 불가능

해당 모드는 기본 선택사항으로 가상 머신 내에서 단순히 인터넷 사용이나 파일 다운로드와 같은 용도로만 사용할 경우 설정이 가능하다. 가상 머신 내에서는 자체 사설 IP 주소를 사용하지만 실제 외부로 나갈 때는 Host PC가 가진 IP 주소를 바꿔 달고 나가게 된다. Host PC의 외부 네트워크에서는 내부의 가상 머신에 접근 불가능하다. (일반적으로 통용되는 NAT의 개념을 적용한 부분이라 자세한 설명은 넘어간다.) 

 

즉, 아래 그림과 같이 NAT 모드일 경우 192.168.0.1의 주소를 사용하는 가상 머신은 외부 네트워크와 통신할 때 123.123.123.x 주소를 달고 외부와 통신하게 된다. 반면 192.168.0.x 의 주소를 가진 다른 가상 머신들과는 통신이 불가능하다.

 

 

 

 

NAT Network


  • 가상머신 내부 네트워크 -> Host PC 외부 네트워크 단방향 통신 가능
  • Host PC 내의 가상 머신 간의 통신 가능

해당 모드는 NAT와 거의 동일하지만 Host PC 내의 가상 머신끼리 통신이 가능하다는 점이 다르다. 가상 머신 간에 상호 통신이 필요한 작업이 있다면 해당 모드를 사용해야 한다. 

 

NAT Network의 경우는 아래 그림과 같이 NAT 와 다 동일하지만 192.168.0.x 의 주소를 가진 다른 가상 머신들과도 통신이 가능하다는 점이 다르다. 

 

 

 

 

 

브리지 어댑터 (Bridged Adapter)


  • Host PC와 동등한 수준의 네트워크 구성
  • 추가의 IP 할당이 필요함

해당 모드는 가상 머신의 네트워크를 Host PC 와 동등 수준으로 구성할 수 있게 해준다. 즉, 예를 들어 Host PC의 네트워크가 192.168.0.2로 설정이 되어 있다면 가상 머신의 네트워크 또한 192.168.0.4 정도로 같은 네트워크로 설정할 수 있는 것이다. 근데 잘 생각해 보면 실제 물리적인 네트워크 인터페이스는 Host PC의 Ethernet 카드 하나밖에 없다. 그렇다면 어떻게 Host PC와 가상 머신의 네트워크를 구분해 내는 것일까. VirtualBox 의 Manual에 따르면 소위 "net filter"라 불리는 Host PC의 network device driver를 사용하여 구분해 낸다고 한다. 해당 net filter를 통해 가상 머신은 자신의 data를 Host PC의 네트워크 카드로 부터 분리해내고 삽입하기도 한다. 

 

브리지 어댑터의 경우 아래 그림과 같이 물리적으로는 Host PC 내에 존재하지만 Host PC의 주소와 동등한 수준의 별도의 주소를 가지고 외부와 통신한다. 

 

 

 

 

 

 

내부 네트워크 (Internal Network)


  • Host PC와 독립적인 내부 네트워크
  • 같은 Host PC 내의 가상 머신 간 연결이 가능

해당 모드는 브리지 어댑터와 많은 부분에서 유사하지만 가장 큰 차이점으로 외부와 통신이 되지 않는다는 점이 있다. 즉, Host PC의 네트워크와 분리되어 있고, Host PC 내 가상 머신 간에만 상호 연결하여 통신이 가능하다. Host PC의 물리적인 네트워크 인터페이스와 연결되어 있지 않다. 

 

아래 그림과 같이 내부 네트워크는 Host PC 네트워크와 분리되어 있고, 가상 머신 간에만 통신이 가능하다.

 

 

 

 

 

호스트 전용 어댑터 (Host-only Adapter)


  • Host PC를 포함한 내부 네트워크 (외부 네트워크와는 단절)
  • 같은 Host PC 내의 가상 머신 간 연결이 가능

해당 모드는 "브리지 어댑터"모드와 같이 Host PC와 내부 가상 머신들과 통신이 가능하고, "내부 네트워크"모드와 같이 외부 네트워크와는 통신이 불가능하다. Host PC의 물리 네트워크 어댑터외에 별도의 Loopback 어댑터를 생성하여 해당 어댑터를 통해 통신한다.

 

호스트 전용 어댑터의 경우는 아래 그림과 같이 외부 네트워크가 단절되어 있다. 

 

 

 

 

 

일반 드라이버 (Generic Driver)


  • 거의 사용되지 않는 모드
  • UDP Tunnel networking과 VDE(Virtual Distributed Ethernet) 지원

 

 

참고로 아래 6개 종류의 Ethernet card만 위의 가상화 모드 설정이 가능하다.

    • AMD PCNet PCI II (Am79C970A)
    • AMD PCNet FAST III (Am79C973, the default)
    • Intel PRO/1000 MT Desktop (82540EM)
    • Intel PRO/1000 T Server (82543GC)
    • Intel PRO/1000 MT Server (82545EM)
    • Paravirtualized network adapter (virtio-net)

 

728x90
728x90

Remote Console Port (default 17990), Web Server Non-SSL Port (default 8082), Web Server SSL Port (default 8082)이다
관리 환경에 맞게 포트 등을 설정하면 된다.

-  접속 IP과 계정 설정은 각각 Network Settings, User Adminstration에서 설정하면 된다. 

3) 웹브라우저로 접속 (부팅 완료 후 자신의 시스템에서 접속하는 방법)
-  https://서버IP:8082 접속  
크롬으로 접속 시 경고창에서 하단에 '안전하지 않음' 선택


IE로 접속하면서 부 기능에서 스크립트 등의 에러가 뜬다면 인터넷 옵션에서 '신뢰할 수 있는 사이트', '예외 사이트'로 등록하면 된다.
Default IP : 
ID / PWD : Administrator / 

초기 설정은 DHCP라 설정되어 있어 IP를 확인하려면 서버 리부팅하여야 한다.
또한 라이센스를 구매해야 한다.


1. 서버 부팅후에 초기화면에서 을 눌러 Intelligent Provisiong(일명 IP)로 진입합니다.

2. Step1의 Set Preferences탭을 선택하여 EULA Acceptance의 체크선택합니다.

3. Step2의 Activation탭을 선택하여 Activate를 선택합니다.

4. Step3의 Register IRS을 선택하여 Register later를 선택합니다.

5. 초기화면에서 Configure and Install은 OS설치시에 선택하시면 됩니다.

6. Performance Maintenrence 선택하여 진행합니다.

7. Performance Maintenance에는 ACU, Firmware, Diagnostic, iLO(원격관련)이 있으며, Firmware Update의 부분은 Network구성을 하시고 WEB Site를 지정하시면 구성이 되나, Server에서는 권장하지 않으며, 별도의 Firmware CD를 통해서 Upgrade하시는걸 권장드립니다.

8. 화면에서 Array Configuration Utility화면(ACU)을 선택하여, Create Array를 선택하여 Raid 구성을 하고 Logical Volume 구성을 합니다.

9. Insight Diagnostic을 클릭하며, Diagnostic은 HP서버의 (CPU, Memory, DISK, FAN, Power와 같은 모든 Part들에 대한 자체 Self진단을 하는 HP Tool입니다.

10. ILO Configuration을 클릭하시어 HP원격접속을 하실수 있게 구성이 가능하며, 관리자 ID/PW 적용하고, 원격관리 IP를 기입합니다.

11. 또한 장비의 iLO Port에 Network가 연결이 되어 있어야만 하는 것이 전제조건이며, ILO관련 License는 "512485-B21 / HP iLO Adv 1-Svr incl 1yr TS&U SW"을 구입하셔서 ILO의 Sals Number를 HP Site에 기입하시면 S/N가 E-mail발송됩니다.

12. iLO는 HP의 단독적인 원격지원 프로그램이며, 이를 통해서 CMOS 및 OS 설치, Virtual CD 및 Power On/Off 등 각종 기능들을 사용하실 수 있습니다.





728x90

'HP' 카테고리의 다른 글

HP ShowALL_log 수집 방법  (0) 2021.02.18
HP Proliant Gen8의 AHS Log 수집방법 3가지  (0) 2021.02.18
HP Onboard Administrator 전원 실행 및 옵션  (0) 2020.10.07
728x90

A Show All report would be the first thing requested by HPE engineers to debug a case or issue observed on the enclosure or blades.

 

How to collect OA Show All report using OA GUI?

Login to Onboard Administration GUI using a browser having java.

 

Next navigate to "Enclosure Settings-> "Configuration Scripts" under "Systems and Devices" as shown below

 

Click on "SHOW ALL" which will generate the report on a new TAB of the browser.
NOTE: It may take some time for the complete report to get generated

728x90

'HP' 카테고리의 다른 글

HP Proliant iLO 설정 방법  (0) 2021.02.18
HP Proliant Gen8의 AHS Log 수집방법 3가지  (0) 2021.02.18
HP Onboard Administrator 전원 실행 및 옵션  (0) 2020.10.07
728x90

HP Proliant Gen8 AHS Log 수집방법 3가지

HP Proliant Gen8에서 AHS Log를 수집하는 방법을 알아보자.

현재 수집 가능한 방법은 3가지가 있다.

1. Intelligent Provisioning을 통해서 AHS Log 수집.


** remote(ILO) local이던지 간에 USB는 필수이다.

** Download the entire Active Health System log - > AHS log 전체를 다운

** Select a range of the Active Health System log in days -> 원하는 날짜의 log를 선택하여 수집가능.
** Contact Information -> AHS Log
에 해당 정보가 포함됩니다.

** ILO 4를 통한 AHS log 수집

**CLI를 통한 AHS log 수집 / iLO Channel Interface Driver가 필수적으로 설치되어야 함.

** CLI Tool을 다운.

 

** 아래처럼 확장자가 *.ahs log가 생성됨.

HP GEN8 & GEN9 장비 AHSdownload 설치 및 로그 수집 (리눅스)

최신 AHS  로그 설치 및  실행방법  (HP ProLiant Gen8 Gen9 서버)

 

다운로드

http://h20564.www2.hpe.com/hpsc/swd/public/detail?swItemId=MTX_368e697b23b049b48b13e7e84a&swEnvOid=4119#

 

OS 비트에 맞는 버전 설치

# rpm -ivh AHSdownload-2.2.0-5.x86_64.rpm
warning: AHSdownload-2.2.0-5.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 26c2b797: NOKEY
Preparing...                ########################################### [100%]
   1:AHSdownload            ########################################### [100%]
# cd /opt/ahs/AHSdownload/
# ls
AHSdownload  README
# ls -alt

total 2388
drwxr-xr-x 2 root root    4096 Sep 18 13:43 .
drwxr-xr-x 3 root root    4096 Sep 18 13:43 ..
-rwxr-xr-x 1 root root 2429128 Nov 30  2016 AHSdownload
-rw-r--r-- 1 root root     137 Nov 30  2016 README

 

실행  (옵션 -d  로그위치 -s 로그수집 시작일  -e  로그수집 종료일)

 

# ./AHSdownload -d /opt/ahs/AHSdownload -s 20170912 -e 20170918
 
AHS CLI Linux download version=2.2.0

 

실행후 

HP_시리얼번호_20170918.ahs 로그가 생성됩니다

 

 

HP Site

https://support.hpe.com/hpesc/public/docDisplay?docId=mmr_sf-EN_US000022955

728x90

'HP' 카테고리의 다른 글

HP Proliant iLO 설정 방법  (0) 2021.02.18
HP ShowALL_log 수집 방법  (0) 2021.02.18
HP Onboard Administrator 전원 실행 및 옵션  (0) 2020.10.07
728x90

C언어를 배우면서 가장 먼저 나오는 함수가 printf일텐데, 리눅스 스크립트에서도 printf 명령이 거의 같은 형태로 구현되어 있어서 특정한 형식에 맞춰서 결과를 출력하고 싶을 때 요긴하게 쓸 수 있다.아래의 몇가지 예시를 보면 감을 잡을 수 있을 것이다. 기본 형태는 printf [형식] [내용] 이런 식이이다.

/usr/bin/printf
printf
문자열 출력 리눅스 명령어

# 줄바꿈(new line) 없이 문자열(%s) 출력
printf "%s" "Hello World"
Hello World(명령 프롬프트가 바로 뒤에 위치)

# 줄바꿈 포함 문자열 출력(\n)
printf "%s\n" "Hello World"
Hello World
(명령 프롬프트가 다음 줄에 위치)

# 탭으로 구분하기(\t)
printf "%s\t%s\n" "Hello" "World"
Hello    World


# 앞에 0을 출력하면서 네자리로 정수(%d) 출력
printf "%04d\n" "123"
0123

# 소수점 두번째 자리까지 실수(%f) 출력(세번째 자리부터 반올림)
printf "%.2f\n" "123.556"
123.56

출력값의 길이를 지정해서 아래의 예시처럼 들여쓰기를 할 수도 있다.

# 길이 7, 소수점 두번째 자리까지 출력
printf "%7.2f\n" "123.556"
 123.56

# 앞에 0을 출력하면서 네자리로 정수(%d) 출력
printf "%04d\n" "123"
0123

728x90
728x90

쉘에서 키보드로 명령을 입력받는 것을 표준 입력(Standard Inupt)이라 하며, 키보드로 입력 받은 명령의 실행결과를 모니터로 출력하는 것을 표준 출력(Standard Outpu)이라고 합니다.

입출력 리다이렉션

쉘에서 명령의 결과를 모니터로 출력하지 않고 파일로 저장할 수 있는데 이때 리다이렉션을 사용한다. 리다이렉션을 사용하여 출력과 입력의 방향을 지정해 줄 수 있다.

리다이렉션 기호방향의미

> 표준 출력 명령 > 파일 : 명령의 결과를 파일로 저장
>> 표준 출력(추가) 명령 >> 파일 : 명령의 결과를 기존 파일 데이터에 추가
< 표준 입력 명령 < 파일 : 파일의 데이터를 명령에 입력

기타 리다이렉션 기호의 쓰임은 아래와 같다.

  • 명령 >& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력
  • 명령 >>& 파일명 : 명령이 실행된 표준 출력의 결과와 에러를 파일로 덧붙여 출력
  • 명령 >! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과를 파일로 출력
  • 명령 >&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일로 출력
  • 명령 >>! 파일명 : 파일의 존재 유무와 상관없이 생성하고 파일에 덧붙여 출력
  • 명령 >>&! 파일명 : 파일의 존재 유무와 상관없이 생성하고 명령이 실행된 표준 출력의 결과와 에러를 파일에 덧붙여 출력
  • 명령A | 명령B : 명령A의 출력을 명령B 입력으로 사용하여 실행
  • 명령A |& 명령B : 명령A의 출력과 에러를 명령 B의 입력으로 사용하여 실행

파일 디스크립터

표준 입력과 표준 출력 그리고 표준 에러를 쉘이나 시스템 프로그래밍에서는 숫자로도 표현할 수 있는데 이를 파일 디스크립터라고 한다.

구분장치파일 디스크립터

표준 입력 키보드 0
표준 출력 모니터 1
표준 에러 모니터 2

/dev/null 2>&1

/dev/null은 0 값을 갖는 null 파일이고 표준 에러(2)를 표준 출력(1)으로 리다이렉션 하라는 의미이다.



728x90
728x90

kubectl 설치 및 설정

쿠버네티스 커맨드 라인 도구인 kubectl을 사용하면, 쿠버네티스 클러스터에 대해 명령을 실행할 수 있다. kubectl을 사용하여 애플리케이션을 배포하고, 클러스터 리소스를 검사 및 관리하며 로그를 볼 수 있다. kubectl 작업의 전체 목록에 대해서는, kubectl 개요를 참고한다.

시작하기 전에

클러스터의 마이너(minor) 버전 차이 내에 있는 kubectl 버전을 사용해야 한다. 예를 들어, v1.2 클라이언트는 v1.1, v1.2 및 v1.3의 마스터와 함께 작동해야 한다. 최신 버전의 kubectl을 사용하면 예기치 않은 문제를 피할 수 있다.

리눅스에 kubectl 설치

리눅스에서 curl을 사용하여 kubectl 바이너리 설치

  1. 다음 명령으로 최신 릴리스를 다운로드한다.

    curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
  2. 특정 버전을 다운로드하려면, $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) 명령 부분을 특정 버전으로 바꾼다.

    예를 들어, 리눅스에서 버전 v1.20.0을 다운로드하려면, 다음을 입력한다.

  3.  

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.0/bin/linux/amd64/kubectl
  4. kubectl 바이너리를 실행 가능하게 만든다.

    chmod +x ./kubectl
  5. 바이너리를 PATH가 설정된 디렉터리로 옮긴다.

    sudo mv ./kubectl /usr/local/bin/kubectl
  6. 설치한 버전이 최신 버전인지 확인한다.

    kubectl version --client

기본 패키지 관리 도구를 사용하여 설치

sudo apt-get update && sudo apt-get install -y apt-transport-https gnupg2 curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list sudo apt-get update sudo apt-get install -y kubectl

다른 패키지 관리 도구를 사용하여 설치

snap 패키지 관리자를 지원하는 Ubuntu 또는 다른 리눅스 배포판을 사용하는 경우, kubectl을 snap 애플리케이션으로 설치할 수 있다.

snap install kubectl --classic kubectl version --client

macOS에 kubectl 설치

macOS에서 curl을 사용하여 kubectl 바이너리 설치

  1. 최신 릴리스를 다운로드한다.

    curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"

    특정 버전을 다운로드하려면, $(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt) 명령 부분을 특정 버전으로 바꾼다.

    예를 들어, macOS에서 버전 v1.20.0을 다운로드하려면, 다음을 입력한다.

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.0/bin/darwin/amd64/kubectl

    kubectl 바이너리를 실행 가능하게 만든다.

    chmod +x ./kubectl

  2. 바이너리를 PATH가 설정된 디렉터리로 옮긴다.

    sudo mv ./kubectl /usr/local/bin/kubectl

  3. 설치한 버전이 최신 버전인지 확인한다.

    kubectl version --client

macOS에서 Homebrew를 사용하여 설치

macOS에서 Homebrew 패키지 관리자를 사용하는 경우, Homebrew로 kubectl을 설치할 수 있다.

  1. 설치 명령을 실행한다.

    brew install kubectl

    또는

    brew install kubernetes-cli

  2. 설치한 버전이 최신 버전인지 확인한다.

    kubectl version --client

macOS에서 Macports를 사용하여 설치

macOS에서 Macports 패키지 관리자를 사용하는 경우, Macports로 kubectl을 설치할 수 있다.

  1. 설치 명령을 실행한다.

    sudo port selfupdate sudo port install kubectl

  2. 설치한 버전이 최신 버전인지 확인한다.

    kubectl version --client

윈도우에 kubectl 설치

윈도우에서 curl을 사용하여 kubectl 바이너리 설치

  1. 이 링크에서 최신 릴리스 v1.20.0을 다운로드한다.

    또는 curl 을 설치한 경우, 다음 명령을 사용한다.

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.20.0/bin/windows/amd64/kubectl.exe

    최신의 안정 버전(예: 스크립팅을 위한)을 찾으려면, https://storage.googleapis.com/kubernetes-release/release/stable.txt를 참고한다.

  2. 바이너리를 PATH가 설정된 디렉터리에 추가한다.

  3. kubectl 의 버전이 다운로드한 버전과 같은지 확인한다.

    kubectl version --client

참고: 윈도우용 도커 데스크톱은 자체 버전의 kubectl 을 PATH에 추가한다. 도커 데스크톱을 이전에 설치한 경우, 도커 데스크톱 설치 프로그램에서 추가한 PATH 항목 앞에 PATH 항목을 배치하거나 도커 데스크톱의 kubectl 을 제거해야 할 수도 있다.

PSGallery에서 Powershell로 설치

윈도우에서 Powershell Gallery 패키지 관리자를 사용하는 경우, Powershell로 kubectl을 설치하고 업데이트할 수 있다.

  1. 설치 명령을 실행한다(DownloadLocation 을 지정해야 한다).

    Install-Script -Name install-kubectl -Scope CurrentUser -Force install-kubectl.ps1 [-DownloadLocation <path>]

    참고: DownloadLocation 을 지정하지 않으면, kubectl 은 사용자의 임시 디렉터리에 설치된다.

  2. 설치 프로그램은 $HOME/.kube 를 생성하고 구성 파일을 작성하도록 지시한다.
  3. 설치한 버전이 최신 버전인지 확인한다.

    kubectl version --client

참고: 설치 업데이트는 1 단계에서 나열한 두 명령을 다시 실행하여 수행한다.

Chocolatey 또는 Scoop을 사용하여 윈도우에 설치

  1. 윈도우에 kubectl을 설치하기 위해서 Chocolatey 패키지 관리자나 Scoop 커맨드 라인 설치 프로그램을 사용할 수 있다.

    choco install kubernetes-cli

  2. 설치한 버전이 최신 버전인지 확인한다.

    kubectl version --client

  3. 홈 디렉터리로 이동한다.

    # cmd.exe를 사용한다면, 다음을 실행한다. cd %USERPROFILE% cd ~

  4. .kube 디렉터리를 생성한다.

    mkdir .kube

  5. 금방 생성한 .kube 디렉터리로 이동한다.

    cd .kube

  6. 원격 쿠버네티스 클러스터를 사용하도록 kubectl을 구성한다.

    New-Item config -type file

참고: 메모장과 같은 텍스트 편집기를 선택하여 구성 파일을 편집한다.

Google Cloud SDK의 일부로 다운로드

kubectl을 Google Cloud SDK의 일부로 설치할 수 있다.

  1. Google Cloud SDK를 설치한다.

  2. kubectl 설치 명령을 실행한다.

    gcloud components install kubectl

  3. 설치한 버전이 최신 버전인지 확인한다.

    kubectl version --client

kubectl 구성 확인

kubectl이 쿠버네티스 클러스터를 찾아 접근하려면, kube-up.sh를 사용하여 클러스터를 생성하거나 Minikube 클러스터를 성공적으로 배포할 때 자동으로 생성되는 kubeconfig 파일이 필요하다. 기본적으로, kubectl 구성은 ~/.kube/config 에 있다.

클러스터 상태를 가져와서 kubectl이 올바르게 구성되어 있는지 확인한다.

kubectl cluster-info

URL 응답이 표시되면, kubectl이 클러스터에 접근하도록 올바르게 구성된 것이다.

다음과 비슷한 메시지가 표시되면, kubectl이 올바르게 구성되지 않았거나 쿠버네티스 클러스터에 연결할 수 없다.

The connection to the server <server-name:port> was refused - did you specify the right host or port?

예를 들어, 랩톱에서 로컬로 쿠버네티스 클러스터를 실행하려면, Minikube와 같은 도구를 먼저 설치한 다음 위에서 언급한 명령을 다시 실행해야 한다.

kubectl cluster-info가 URL 응답을 반환하지만 클러스터에 접근할 수 없는 경우, 올바르게 구성되었는지 확인하려면 다음을 사용한다.

kubectl cluster-info dump

선택적 kubectl 구성

셸 자동 완성 활성화

kubectl은 Bash 및 Zsh에 대한 자동 완성 지원을 제공하므로 입력을 위한 타이핑을 많이 절약할 수 있다.

다음은 Bash(리눅스와 macOS의 다른 점 포함) 및 Zsh에 대한 자동 완성을 설정하는 절차이다.

소개

Bash의 kubectl 완성 스크립트는 kubectl completion bash 명령으로 생성할 수 있다. 셸에서 완성 스크립트를 소싱(sourcing)하면 kubectl 자동 완성 기능이 활성화된다.

그러나, 완성 스크립트는 bash-completion에 의존하고 있으며, 이 소프트웨어를 먼저 설치해야 한다(type _init_completion 을 실행하여 bash-completion이 이미 설치되어 있는지 확인할 수 있음).

bash-completion 설치

bash-completion은 많은 패키지 관리자에 의해 제공된다(여기 참고). apt-get install bash-completion 또는 yum install bash-completion 등으로 설치할 수 있다.

위의 명령은 bash-completion의 기본 스크립트인 /usr/share/bash-completion/bash_completion 을 생성한다. 패키지 관리자에 따라, ~/.bashrc 파일에서 이 파일을 수동으로 소스(source)해야 한다.

확인하려면, 셸을 다시 로드하고 type _init_completion 을 실행한다. 명령이 성공하면, 이미 설정된 상태이고, 그렇지 않으면 ~/.bashrc 파일에 다음을 추가한다.

source /usr/share/bash-completion/bash_completion

셸을 다시 로드하고 type _init_completion 을 입력하여 bash-completion이 올바르게 설치되었는지 확인한다.

kubectl 자동 완성 활성화

이제 kubectl 완성 스크립트가 모든 셸 세션에서 제공되도록 해야 한다. 이를 수행할 수 있는 두 가지 방법이 있다.

  • ~/.bashrc 파일에서 완성 스크립트를 소싱한다.

    echo 'source <(kubectl completion bash)' >>~/.bashrc

  • 완성 스크립트를 /etc/bash_completion.d 디렉터리에 추가한다.

    kubectl completion bash >/etc/bash_completion.d/kubectl

kubectl에 대한 앨리어스(alias)가 있는 경우, 해당 앨리어스로 작업하도록 셸 완성을 확장할 수 있다.

echo 'alias k=kubectl' >>~/.bashrc echo 'complete -F __start_kubectl k' >>~/.bashrc

참고: bash-completion은 /etc/bash_completion.d 에 있는 모든 완성 스크립트를 소싱한다.

두 방법 모두 동일하다. 셸을 다시 로드한 후, kubectl 자동 완성 기능이 작동해야 한다.

728x90

'kubectl' 카테고리의 다른 글

실행중인 컨테이너에 연결  (0) 2021.09.07
쿠버네티스 kubectl 명령어  (0) 2021.09.07

+ Recent posts