k3sup을 사용하여 k3s 설치

10800 단어 k3sk3supmultipass
매번 투덜거려도 안 나오는 에피소드가 있다.
이 보도는 개인의 견해로 필자가 속한 어떤 단체와도 관계가 없다.
시작
k3s의 설치가 좀 힘들기 때문에 k3sup이라는 도구에 의존해 보세요.
나는 k3s에 관한 일을 설명하지 않는다.
k3s에 관해서는 아래 사이트를 참조하십시오.
K3s: Lightweight Kubernetes
https://k3s.io/
일본어 수첩을 무료로 발급하다.
일본판 k3s 매뉴얼 다운로드 | 주식회사 스타일스
https://www.stylez.co.jp/rancher-k3s-pdf/

1.k3sup이 뭐예요?
k3s 설치 도구입니다.
k3s를 설치한 서버에 SSH를 실행할 수 있는 환경이라면 k3sup 명령을 사용하여 설정할 수 있습니다.설치를 위한 명령입니다.
듣자니 독법이 케첩이라고 한다.

2.k3sup 설치
k3sup을 설치할 때 다음 명령을 사용하여 설치를 완료합니다.
이 명령은 k3s와 무관한 외부 서버에 넣는 데 문제가 없습니다.
(Windows용 CLI 버전도 있음)
curl -sLS https://get.k3sup.dev | sh
sudo install k3sup /usr/local/bin/

k3sup --help

이 설명의 객체 버전:
bash
$ k3sup version
Version: 0.11.0
Git Commit: fd9dfeaa6cd32f0d048f33705a04c14ca4aa3550
3. k3sup
3-1. k3s 설치 옵션
설치 옵션은 크게 두 가지 옵션으로 나뉜다.
설치 옵션
설명
k3sup install
서버 설치 옵션
k3sup join
기존 서버 에이전트를 설치하거나 추가하는 옵션
기타 옵션
설치 옵션
설명
k3s app
YAML 및 helm 차트에서 응용 프로그램 설치
3-1-1. k3s 서버 설치 옵션
k3sup install <オプション>
설치 옵션
설명
--cluster
dqlite를 이용하여 집합을 형성할 때 사용
--context string
kubeconfig 파일의 컨텍스트 이름 지정(기본값: "default")
--datastore string
옵션: HA 구성에서 k3s 데이터베이스에 연결된 연결 문자열.예: "mysql://username:password@tcp(hostname:3306)/database-name"
--ip ip
설치할 노드의 IP 주소(기본 127..0.1)
--ipsec
flannel-backend의 백엔드 옵션은 ipsec에서 추가 인자를 강제로 사용하거나 사용합니다
--k3s-channel string
발표 채널 지정 옵션:stable,latest, 기타 예시 v1.18(기본 "v1.18")
--k3s-extra-args string
k3s가 설치기에 전달하는 과도한 선택 가능한 매개 변수 (예: -k3s-extra-args' -no-deploy 서비스 lb ')
--k3s-version string
옵션: 설치 버전 지정(k3s-Channel 덮어쓰기)
--local
SSH를 사용하지 않고 로컬 설치
--local-path string
kubeconfig 파일을 로컬로 저장하는 파일 경로(기본 "kubeconfig")
--merge
만약kubeconfig가 기존kubeconfig에 합쳐져 다른 디렉터리에 존재한다면local-path 로고에merge를 지정하십시오
--no-extras
서비스 lb 및 traefik 비활성화
--print-command
오류가 발생했을 때 SSH를 사용하여 수동으로 복구하기 위한 명령 출력
--skip-install
설치 프로그램 건너뛰기
--ssh-key string
원격 로그인에 사용할 SSH 키(기본값~/.ssh/id rsa)
--ssh-port int
SSH 연결 시 포트 번호(기본 22)
--sudo
설치할 때 sudo 사용하기 (예: 루트를 사용할 때 sudo를 사용하지 않을 때 가짜로 설정) (기본 진짜)
--tls-san string
옵션:지정되지 않은 경우 기본 서버 IP
--user string
SSH 로그인 사용자 이름(기본 "root")
3-1-2. 프록시 설치 옵션
k3sup join <オプション>
설치 옵션
설명
--ip ip
프록시 설치 노드의 공개 IP
--k3s-channel string
발표 채널 지정 옵션: stable,latest, 기타 예시: v1.18 (default "v1.18")
--k3s-extra-args string
k3s가 설치기에 전달하는 쿼트의 선택적 인자 (e.g. - k3s-extra-args "- node-taint key=value: NoExecute")
--k3s-version string
옵션: 설치 버전 지정(k3s-Channel 덮어쓰기)
--print-command
오류가 발생했을 때 SSH를 사용하여 수동으로 복구하기 위한 명령 출력
--server
에이전트가 아니라 서버로 그룹에 가입합니다
--server-ip ip
기존 k3s 서버의 공개 주소
--server-ssh-port int
SSH에 연결된 서버에 SSH를 연결하는 포트 번호(기본값은 -Sh-port)(기본값 22)
--server-user string
서버에서 SSH에 로그인할 때 사용자 이름(기본값은 -user와 동일)(default "root")
--skip-install
설치 프로그램 건너뛰기
--ssh-key string
원격 로그인에 사용할 SSH 키(기본값~/.ssh/id rsa)
--ssh-port int
SSH 연결 시 포트 번호(기본 22)
--sudo
설치할 때 sudo 사용하기 (예: 루트를 사용할 때 sudo를 사용하지 않을 때 가짜로 설정) (기본 진짜)
--user string
SSH 로그인 사용자 이름(기본 "root")
4.k3s 사전 준비
다음과 같은 사전 준비를 한다.
  • PostgreSQL을 k3s의 데이터 저장소로 설정하여 PostgreSQL을 준비합니다.
  • ssh의 공개 키와 비밀 키를 미리 만듭니다.
  • multipass로 k3s를 시작하는 가상 기기를 시작합니다.
  • 4-1. PostgreSQL 설치 및 데이터베이스 만들기
    sudo apt install postgresql
    
    export DATABASE_NAME="k3s_database"
    export K3S_DB_USER="k3s_admin"
    export K3S_DB_PASSWORD="k3s_admin_foobaa"
    
    echo 'export K3S_DB_USER="k3s_admin"'
    echo 'export K3S_DB_PASSWORD="k3s_admin_foobaa"'
    
    # Create User for DATABASE (one time)
    sudo -i -u postgres psql -c "CREATE USER ${K3S_DB_USER} WITH password '${K3S_DB_PASSWORD}';"
    
    # Create DATABSE
    sudo -i -u postgres psql -c "CREATE DATABASE ${DATABASE_NAME};"
    sudo -i -u postgres psql -c "GRANT ALL privileges ON DATABASE ${DATABASE_NAME} TO ${K3S_DB_USER};"
    
    DB 쪽에서 외부 연결 허용해주세요.
    sudo vi /etc/postgresql/12/main/postgresql.conf
    
    /etc/postgresql/12/main/postgresql.conf
    - #listen_addresses = 'localhost'         # what IP address(es) to listen on;
    + listen_addresses = '*'               # what IP address(es) to listen on;
    
    DB에 연결된 IP 주소를 추가하십시오.
    sudo vi /etc/postgresql/12/main/pg_hba.conf
    
    /etc/postgresql/12/main/pg_hba.conf
    + host    all             all             0.0.0.0/0               md5
    
    추기 후 재부팅됩니다.
    sudo systemctl restart postgresql
    
    4-2. SSH의 개인 키 복사
    multipass로 가상 기기를 시작합니다. 일반적인 경우 multipass launch 공공 키 (/home/ubant/.ssh/authhorized keys) 는 기본 SSH 키로 인증하기 위해 가상 기기 옆에 들어갑니다.SSH 키 인증을 사용하여 로그인합니다.
    SSH 키는 아래에 있지만 루트 권한으로만 읽을 수 있기 때문에 ~/.ssh/multpass-ssh-key_id_rsa 같은 곳으로 복사됩니다
    sudo cp /var/snap/multipass/common/data/multipass/ssh-keys/id_rsa ~/.ssh/multipass-ssh-key_id_rsa
    
    4-3. multipass로 가상 머신 준비
    multipass launch 18.04 --name "k3s-main" -c 2 -m 4g -d 20g --cloud-init ./cloud-init_k3s.yaml
    multipass launch 18.04 --name "k3s-agent" -c 2 -m 4g -d 20g --cloud-init ./cloud-init_k3s.yaml
    
    cloud-init 파일은 다음과 같은 내용을 준비하십시오
    cloud-init_k3s.yaml
    #cloud-config
    timezone: Asia/Tokyo
    package_upgrade: true
    package_reboot_if_required: true
    
    가상 머신이 시작되면 해당 IP 주소를 기록합니다.
    export IP_k3s_main=xx.xx.xx.xx
    export IP_k3s_agent=yy.yy.yy.yy
    
    5. k3s 서버 설치
    export Postgres_IP_Address=zz.zz.zz.zz
    
    k3sup install \
     --ip $IP_k3s_main \
     --user ubuntu \
     --ssh-key ~/.ssh/multipass-ssh-key_id_rsa \
     --datastore="postgres://${K3S_DB_USER}:${K3S_DB_PASSWORD}@${Postgres_IP_Address}:5432/${DATABASE_NAME}"
    
    k3s 에이전트 설치
    k3sup join \
     --ip $IP_k3s_agent \
     --server-ip $IP_k3s-main \
     --user ubuntu \
     --ssh-key ~/.ssh/multipass-ssh-key_id_rsa \
    
    7. K3s가 시작되었는지 확인
    시작 후 로컬에서kubeconfig 파일을 생성하여 get node를 진행할 수 있습니다.
    kubectl --kubeconfig=./kubeconfig get no
    
    이렇게 표시하면 됩니다.
    NAME       STATUS   ROLES    AGE     VERSION
    k3-main    Ready    master   22m     v1.19.11+k3s1
    k3-agent   Ready    <none>   3m49s   v1.19.11+k3s1
    
    8. 총결산
    편리한 시대에 이르러 멀티파스와 k3s를 조합하여 Kubernetes를 간단하게 구축할 수 있다.
    필요에 따라 설치remote.it하면 외부 접근도 간단해진다.
    multippass와remote.it(remot3.it)로 가상 기기의 네트워크를 편안하게 하다
    https://qiita.com/ynott/items/649e653ed2aeadf812ae
    k3d가 가벼워졌기 때문에 개발자에게 이걸 추천합니다.
    9. 참조

    좋은 웹페이지 즐겨찾기