arrow-left

All pages
gitbookPowered by GitBook
1 of 8

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

upgrade

hashtag
upgrade

since v1.0.0

μ„€μΉ˜λœ μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ 버전을 μ—…κ·Έλ ˆμ΄λ“œν•©λ‹ˆλ‹€.

cubectl 둜 ν”„λ‘œλΉ„μ €λ‹λœ ν΄λŸ¬μŠ€ν„°λ§Œ μ—…κ·Έλ ˆμ΄λ“œκ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€.

μ—…κ·Έλ ˆμ΄λ“œ 버전 λ²”μœ„λŠ” v1.24 μ—μ„œ v1.27 κΉŒμ§€μ΄λ©° λ‹¨κ³„λ³„λ‘œ μ—…κ·Έλ ˆμ΄λ“œκ°€ μ§„ν–‰λ©λ‹ˆλ‹€. (1.23 -> 1.24 -> 1.25 -> 1.26 -> 1.27)

λ‹€μš΄κ·Έλ ˆμ΄λ“œλŠ” λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

hashtag
parameters

  • -p <ssh key>

    • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

  • -u <username>

hashtag
examples

β€» μžμ„Έν•œ λ‚΄μš©μ€ λ₯Ό μ°Έμ‘°ν•©λ‹ˆλ‹€.

μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

  • --kubeconfig <kubeconfig file>

    • μ—…κ·Έλ ˆμ΄λ“œν•  μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ kubeconfig νŒŒμΌμž…λ‹ˆλ‹€.

    • Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig

  • -a, --auto-approve

    • optional

    • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

  • -c, --cluster

    • optional

    • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : "default"

  • -f, --config

    • optional

    • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : ${CUBE_HOME}/config/cubectl.toml

  • --container-runtime

    • optional

    • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • Default : "podman"

  • --cube

    • optional

    • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : "latest"

  • --port

    • optional

    • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : 22

  • -v, --verbose

    • optional

    • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

  • Tutorial - 버전 μ—…κ·Έλ ˆμ΄λ“œ
    $ cubectl upgrade -p <ssh key> -u <username> --kubeconfig <KUBECONFIG>
    $ cubectl upgrade -p ~/.ssh/id_rsa -u cocktail --kubeconfig $(pwd)/config/{{CLUSTER}}/acloud-client-kubeconfig

    create

    hashtag
    create

    since v1.0.0

    μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„° 및 사섀 μ €μž₯μ†Œ(harbor), μŠ€ν† λ¦¬μ§€ μ„œλ²„(Network File Server)λ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.

    $ cubectl create -p <ssh key> -u <username>

    hashtag
    parameters

    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

    hashtag
    examples

    destroy

    hashtag
    destroy

    since v1.0.0

    μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°, Registry, Storage μ„œλ²„λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

    μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

  • -a, --auto-approve

    • optional

    • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

  • -c, --cluster

    • optional

    • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : "default"

  • -f, --config

    • optional

    • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : ${CUBE_HOME}/config/cubectl.toml

  • --container-runtime

    • optional

    • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • Default : "podman"

  • --cube

    • optional

    • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : "latest"

  • --port

    • optional

    • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : 22

  • -v, --verbose

    • optional

    • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

  • $ cat <<EOF > ${CUBE_HOME}/config/cubectl.toml
    [cubectl]
    closed-network = true
    local-repository-install = true
    [kubernetes]
    version = "v1.28.15"
    [node-pool.master]
    ip = ["192.168.77.132"]
    private-ip = ["10.30.30.192"]
    [node-pool.node]
    ip = ["192.168.77.98"]
    private-ip = ["10.30.30.30"]
    [private-registry]
    install = true
    registry-ip = "192.168.77.119"
    private-ip = "10.30.30.50"
    EOF
    
    $ cubectl create -p ~/.ssh/id_rsa -u cocktail
    hashtag
    parameters
    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

    • -a, --auto-approve

      • optional

      • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

    • -c, --cluster

      • optional

      • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • -f, --config

      • optional

      • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • --container-runtime

      • optional

      • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • --cube

      • optional

      • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • --port

      • optional

      • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • -v, --verbose

      • optional

      • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

    hashtag
    examples

    hashtag
    destroy cluster

    since v1.0.0

    μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

    • -a, --auto-approve

      • optional

      • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

    • -c, --cluster

      • optional

      • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • -f, --config

      • optional

      • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • --container-runtime

      • optional

      • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • --cube

      • optional

      • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • --port

      • optional

      • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • -v, --verbose

      • optional

      • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

    hashtag
    examples

    hashtag
    destroy registry

    since v1.0.0

    μ €μž₯μ†Œλ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

    • -a, --auto-approve

      • optional

      • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

    • -c, --cluster

      • optional

      • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • -f, --config

      • optional

      • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • --container-runtime

      • optional

      • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • --cube

      • optional

      • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • --port

      • optional

      • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • -v, --verbose

      • optional

      • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

    hashtag
    examples

    hashtag
    destroy localrepo

    since v1.2.4

    localrepo μ„œλ²„λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

    • -a, --auto-approve

      • optional

      • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

    • -c, --cluster

      • optional

      • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • -f, --config

      • optional

      • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • --container-runtime

      • optional

      • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • --cube

      • optional

      • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • --port

      • optional

      • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • -v, --verbose

      • optional

      • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

    hashtag
    examples

    hashtag
    destroy storage

    since v1.0.0

    Storage μ„œλ²„λ₯Ό μ œκ±°ν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

    • -a, --auto-approve

      • optional

      • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

    • -c, --cluster

      • optional

      • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • -f, --config

      • optional

      • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • --container-runtime

      • optional

      • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • --cube

      • optional

      • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • --port

      • optional

      • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • -v, --verbose

      • optional

      • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

    hashtag
    examples

    cubectl

    hashtag
    κ°œμš”

    cubectl 은 cubectl.toml 에 μ§€μ •λœ μ„€μ • 값을 기반으둜 μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°λ₯Ό ν”„λ‘œλΉ„μ €λ‹ν•˜κ³  κ΄€λ ¨ νˆ΄μ„ μ„€μΉ˜ν•˜λŠ” Command Line Interface μž…λ‹ˆλ‹€.

    destroy
    β”œβ”€β”€ cluster
    β”œβ”€β”€ registry
    └── storage
    $ cubectl destroy  -p <ssh key> -u <username>
    $ cubectl destroy -p ~/.ssh/id_rsa -u cocktail
    $ cubectl destroy cluster -p ~/.ssh/id_rsa -u cocktail
    $ cubectl destroy registry -p ~/.ssh/id_rsa -u cocktail
    $ cubectl destroy localrepo -p ~/.ssh/id_rsa -u cocktail
    $ cubectl destroy storage -p ~/.ssh/id_rsa -u cocktail
    Default : "default"
    Default : ${CUBE_HOME}/config/cubectl.toml
    Default : "podman"
    Default : "latest"
    Default : 22
    Default : "default"
    Default : ${CUBE_HOME}/config/cubectl.toml
    Default : "podman"
    Default : "latest"
    Default : 22
    Default : "default"
    Default : ${CUBE_HOME}/config/cubectl.toml
    Default : "podman"
    Default : "latest"
    Default : 22
    Default : "default"
    Default : ${CUBE_HOME}/config/cubectl.toml
    Default : "podman"
    Default : "latest"
    Default : 22
    Default : "default"
    Default : ${CUBE_HOME}/config/cubectl.toml
    Default : "podman"
    Default : "latest"
    Default : 22
    hashtag
    ꡬ쑰

    cubectl command κ΅¬μ‘°λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

    hashtag
    λͺ©μ°¨

    • create : μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°λ₯Ό ν”„λ‘œλΉ„μ €λ‹ν•˜κ³  사섀 μ €μž₯μ†Œ(harbor), μŠ€ν† λ¦¬μ§€ μ„œλ²„(NFS) 툴 μ„€μΉ˜ν•©λ‹ˆλ‹€.

    • destroy : ν”„λ‘œλΉ„μ €λ‹λœ μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°, 사섀 μ €μž₯μ†Œ(harbor), μŠ€ν† λ¦¬μ§€ μ„œλ²„(NFS) 툴 μ œκ±°ν•©λ‹ˆλ‹€.

    • update : μΏ λ²„λ„€ν‹°μŠ€ λ…Έλ“œλ₯Ό μΆ”κ°€,μ‚­μ œ ν•©λ‹ˆλ‹€.

    • : μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ KUBECONFIG νŒŒμΌμ„ μ €μž₯ν•©λ‹ˆλ‹€.

    • : μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„° 버전을 μ—…κ·Έλ ˆμ΄λ“œ ν•©λ‹ˆλ‹€.

    • : μ„€μ • 정보 파일인 cubectl.toml 생성/μ‘°νšŒν•˜κ±°λ‚˜ ν”„λ‘œλΉ„μ €λ‹λœ μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ™€ cubectl.toml νŒŒμΌμ„ 동기화 ν•©λ‹ˆλ‹€.

    • : μ• λ“œμ˜¨ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ°°ν¬ν•©λ‹ˆλ‹€.

    • : μ»¨ν…Œμ΄λ„ˆ 이미지λ₯Ό λ ˆμ§€μŠ€νŠΈλ¦¬μ— push ν•©λ‹ˆλ‹€, OS νŒ¨ν‚€μ§€λ₯Ό local repository에 pushν•˜κ³  μž¬κ΅¬μ„±ν•©λ‹ˆλ‹€.

    • : CLI 버전 정보λ₯Ό μ‘°νšŒν•©λ‹ˆλ‹€.

    • : μ• ν”Œλ¦¬μΌ€μ΄μ…˜ λ‚΄μ˜ λͺ¨λ“  λͺ…령어에 λŒ€ν•œ 도움말을 μ œκ³΅ν•©λ‹ˆλ‹€.

    addon

    hashtag
    addon list

    since v1.2.0

    μ• λ“œμ˜¨ λͺ©λ‘μ„ μ‘°νšŒν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • --kubeconfig <kubeconfig file>

      • μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ kubeconfig νŒŒμΌμž…λ‹ˆλ‹€.

      • Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig

    hashtag
    examples

    hashtag
    addon enable

    since v1.2.0

    쑰회된 μ• λ“œμ˜¨ λͺ©λ‘μ—μ„œ μ„€μΉ˜ν•  ADDON_NAME을 ν™•μΈν•˜κ³  ν•΄λ‹Ή μ• λ“œμ˜¨μ„ μ„€μΉ˜ ν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • --kubeconfig <kubeconfig file>

      • μ• λ“œμ˜¨μ„ μ„€μΉ˜ν•  μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ kubeconfig νŒŒμΌμž…λ‹ˆλ‹€.

      • Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig

    hashtag
    examples

    hashtag
    addon disable

    since v1.2.0

    μ„€μΉ˜λœ μ• λ“œμ˜¨μ„ μ‚­μ œ ν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • --kubeconfig <kubeconfig file>

      • μ• λ“œμ˜¨μ„ μ‚­μ œν•  μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ kubeconfig νŒŒμΌμž…λ‹ˆλ‹€.

      • Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig

    hashtag
    examples

    cubectl/
    β”œβ”€β”€ create
    β”œβ”€β”€ destroy
    β”‚Β Β Β β”œβ”€β”€ cluster
    β”‚Β Β Β β”œβ”€β”€ registry
    β”‚Β Β Β β”œβ”€β”€ localrepo
    │   └── storage
    β”œβ”€β”€ update
    β”œβ”€β”€ update-kubeconfig
    β”œβ”€β”€ upgrade
    β”œβ”€β”€ config
    β”‚Β Β Β β”œβ”€β”€ view
    β”‚Β Β Β β”œβ”€β”€ new
    │   └── sync 
    │── addon
    β”‚Β Β Β β”œβ”€β”€ list
    β”‚Β Β Β β”œβ”€β”€ enable
    │   └── disable
    │── push
    β”‚Β Β Β β”œβ”€β”€ registry
    │   └── localrepo
    β”œβ”€β”€ version
    └── help
    addon
    β”œβ”€β”€ list
    β”œβ”€β”€ enable
    └── disable
    $ cubectl addon list --kubeconfig <kubeconfig file>
    update-kubeconfig
    upgrade
    config
    addon
    pusharrow-up-right
    versionarrow-up-right
    helparrow-up-right

    --profile <profile file>

    • μ• λ“œμ˜¨μ— μ μš©ν•  profile 파일λͺ…을 μž…λ ₯ν•©λ‹ˆλ‹€. (ν™•μž₯자 μ œμ™Έ)

    • Default : λ―Έ μž…λ ₯μ‹œ default.yaml μ‚¬μš©λ¨

    $ cubectl addon list
    $ cubectl addon list --kubeconfig acloud-client-kubeconfig
    $ cubectl addon enable {{ADDON_NAME}} --kubeconfig <kubeconfig file>  --profile <profile file>
    $ cubectl addon enable gpu-operator
    $ cubectl addon enable gpu-operator --kubeconfig acloud-client-kubeconfig
    $ cubectl addon enable gpu-operator --kubeconfig acloud-client-kubeconfig --profile redhat
    $ cubectl addon enable gpu-operator --kubeconfig acloud-client-kubeconfig --profile redhat
    $ cubectl addon disable {{ADDON_NAME}} --kubeconfig <kubeconfig file>
    $ cubectl addon disable csi-driver-nfs
    $ cubectl addon disable csi-driver-nfs --kubeconfig acloud-client-kubeconfig

    update-kubeconfig

    hashtag
    update-kubeconfig

    since v1.0.0

    μ„€μΉ˜λœ μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ KUBECONFIG νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œλ°›μŠ΅λ‹ˆλ‹€.

    acloud-client-kubeconfig 파일둜 μ €μž₯λ©λ‹ˆλ‹€.

    hashtag
    parameters

    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

    hashtag
    examples

    update

    hashtag
    update

    since v1.0.0

    μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ— μ›Œμ»€ λ…Έλ“œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ‚­μ œν•©λ‹ˆλ‹€.

    $ cubectl update -p <ssh key> -u <username> --kubeconfig <kubeconfig file>

    hashtag
    parameters

    • -p <ssh key>

      • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.

    • -u <username>

    hashtag
    examples

    μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

  • -a, --auto-approve

    • optional

    • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

  • -c, --cluster

    • optional

    • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : "default"

  • -f, --config

    • optional

    • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : ${CUBE_HOME}/config/cubectl.toml

  • --container-runtime

    • optional

    • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • Default : "podman"

  • --cube

    • optional

    • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : "latest"

  • --port

    • optional

    • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : 22

  • -v, --verbose

    • optional

    • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

  • μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ…μž…λ‹ˆλ‹€.

  • --kubeconfig <kubeconfig file>

    • μ—…λ°μ΄νŠΈν•  μΏ λ²„λ„€ν‹°μŠ€ ν΄λŸ¬μŠ€ν„°μ˜ kubeconfig νŒŒμΌμž…λ‹ˆλ‹€.

    • Default : ${CUBE_HOME}/config/{{CLUSTER}}/acloud-client-kubeconfig

  • -a, --auto-approve

    • optional

    • IP 확인 및 y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

  • -c, --cluster

    • optional

    • Cluster 이름을 μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : "default"

  • -f, --config

    • optional

    • cubectl.toml 경둜λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.

    • Default : ${CUBE_HOME}/config/cubectl.toml

  • --container-runtime

    • optional

    • μ»¨ν…Œμ΄λ„ˆ λŸ°νƒ€μž„μ„ μ§€μ •ν•©λ‹ˆλ‹€. podman λ˜λŠ” docker μ€‘μ—μ„œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

    • Default : "podman"

  • --cube

    • optional

    • Cube의 버전을 μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : "latest"

  • --port

    • optional

    • 원격 호슀트의 포트λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

    • Default : 22

  • -v, --verbose

    • optional

    • 상세 좜λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

  • $ cubectl update-kubeconfig -p <ssh key> -u <username>
    $ cubectl update-kubeconfig -p ~/.ssh/id_rsa -u cocktail
    $ cat config/default/acloud-client-kubeconfig
    
    $ cubectl update-kubeconfig -p ~/.ssh/id_rsa -u cocktail -c cluster-1
    $ cat config/cluster-1/acloud-client-kubeconfig
    $ cubectl update -p ~/.ssh/id_rsa -u cocktail --kubeconfig $(pwd)/config/{{CLUSTER}}/acloud-client-kubeconfig

    config

    hashtag
    config new

    since v1.0.0

    config/cubectl.toml 에 μƒˆλ‘œμš΄ cubectl.toml νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€.

    hashtag
    parameters

    • -a, --auto-approve

      • optional

      • y/n 질의 절차λ₯Ό μƒλž΅ν•©λ‹ˆλ‹€.

    hashtag
    examples

    chevron-rightμƒμ„±λœ `cubectl.toml` 파일hashtag

    hashtag
    config view

    since v1.0.0

    cubectl.toml 파일의 λ‚΄μš©μ„ ν™•μΈν•©λ‹ˆλ‹€.

    hashtag
    examples

    hashtag
    ~~~config sync~~~

    since v1.0.0 (deprecated v1.2.0)

    config
    β”œβ”€β”€ new
    β”œβ”€β”€ view
    └── sync
    $ cubectl config new
    $ bin/cubectl config new
    
    Do you really want to make a new config file? 
    Is this ok [y/n]: y
    [cubectl]
    ## Required
    ## - local-repository-install: local repository installation activate. (Required when selecting the closed network.)
    ##                             It is installed on the registry host.
    ## - local-repository-url: local repository service url (Required when selecting the closed network.)
    ##                         If you are installing a private repository, you can skip it. (default: registry-ip)
    ## Optional
    ## - cluster-name: use cluster name in config context (default: "kubernetes")
    ## - install-dir: installation scripts(harbor, shell scripts) save directory (default: "/var/lib/cubectl")
    ## - cert-validity-days: SSL validity days(default: 36500)
    ## - closed-network: Enable Air Gap (default: false)
    #cluster-name = "kubernetes"
    #install-dir = "/var/lib/cubectl"
    #cert-validity-days = 36500
    #debug-mode = false
    #closed-network = false
    #local-repository-install = false
    #local-repository-url = "http://x.x.x.x"
    
    [kubernetes]
    ## Required
    ## -
    ## Optional
    ## - version: Kubernetes version (default: "latest")
    ##            If you input only the major version, the minor version automatically selects the last version.
    ## - container-runtime: use k8s cri (only containerd)
    ## - kube-proxy-mode: use k8s proxy mode [iptables | ipvs] (default: "ipvs")
    ## - service-cidr: k8s service network cidr (default: "10.96.0.0/20")
    ## - pod-cidr: k8s pod network cidr (default: "10.4.0.0/16")
    ## - node-port-range: k8s node port network range (default: "30000-32767")
    ## - audit-log-enable: k8s audit log enabled (default: true)
    ## - api-sans: Add k8s apiserver SAN [--apiserver-cert-extra-sans same as setting] (default: master[0] ip address)
    #version = "v1.23.13"
    #container-runtime = "containerd"
    #kube-proxy-mode = "ipvs"
    #service-cidr = "10.96.0.0/20"
    #pod-cidr = "10.4.0.0/16"
    #node-port-range = "30000-32767"
    #audit-log-enable = true
    #api-sans = ["x.x.x.x"]
    
    [kubernetes.etcd]
    ## Required
    ## - ip: k8s control plane nodes ip address. (Required when selecting the external-etcd="true")
    ## - private-ip: K8s control plane nodes private ip address. (Required when selecting the external-etcd="true")
    ##               If you use the same IP address, you can skip it.
    ## Optional
    ## - external-etcd: used external etcd than input the ip and private-ip address (default: false)
    ##                  not used than skip ip address. it is used control plane nodes as automatic.
    #external-etcd = false
    #ip = ["x.x.x.x"]
    #private-ip = ["x.x.x.x"]
    
    
    [kubernetes.calico]
    ## Required
    ## -
    ## Optional
    ## - vxlan-mode: calico VXLAN mode activate (default: false)
    #vxlan-mode = false
    
    [node-pool]
    ## Required
    ## -
    ## Optional
    ## - data-dir: data(backup, docker, log, kubelet, etcd, k8s-audit, containerd) root dir (default: "/data")
    ## - ssh-port: Node ssh port (default: 22)
    #data-dir = "/data"
    #ssh-port = 22
    
    [node-pool.master]
    ## Required
    ## - ip: k8s control plane nodes ip address.
    ## - private-ip: K8s control plane nodes private ip address.
    ##               If you use the same IP address, you can skip it.
    ## Optional
    ## - lb-ip: load balancer ip address (default: master[0] node ip address)
    ## - isolated: K8s control plane nodes isolated (default: true)
    ## - haproxy-install: used internal load-balancer (default: true)
    ## - lb-ip: Enter the IP address when using a load balancer (default: master[0] ip address)
    ## - lb-port: Enter the port when using a load balancer (default: 6443)
    #ip = ["x.x.x.x","x.x.x.x","x.x.x.x"]
    #private-ip = ["x.x.x.x","x.x.x.x","x.x.x.x"]
    #isolated = true
    #haproxy-install = true
    #lb-ip = "x.x.x.x"
    #lb-port = 6443
    
    [node-pool.node]
    ## Required
    ## - ip: k8s work nodes ip address.
    ## - private-ip: K8s work nodes private ip address.
    ##               If you use the same IP address, you can skip it.
    ## Optional
    #ip = ["x.x.x.x", "x.x.x.x"]
    #private-ip = ["x.x.x.x", "x.x.x.x"]
    
    [private-registry]
    ## Required
    ## - registry-ip: Public IP address of the private registry node.
    ##                This is a required entry used when installing a private registry.
    ## - private-ip: Private IP address of the private registry node.
    ##               This is a required entry used when installing a private registry.
    ##               If you use the same IP address, you can skip it.
    ## Optional
    ## - install: private registry install (default: false)
    ## - data-dir: private registry data directory (default: "/data/harbor")
    ## - public-cert: public cert activate (default: false)
    ## - cocktail-archive-file: Push cocktail addons and image files to the harbor (default:"")
    #install = false
    #registry-ip = "x.x.x.x"
    #private-ip = "x.x.x.x"
    #registry-domain = "x.x.x.x"
    #data-dir = "/data/harbor"
    #public-cert = false
    #cocktail-archive-file = ""
    
    [private-registry.cert-file]
    ## Required
    ## - ssl-certificate: The certificate path used when using public-cert.
    ##                    This is a required field used when using a public certificate.
    ## - ssl-certificate-key: The certificate-key used when using public-cert.
    ##                        This is a required field used when using a public certificate.
    ## Optional
    #ssl-certificate = ""
    #ssl-certificate-key = ""
    
    [shared-storage]
    ## Required
    ## - storage-ip: Storage node ip address.
    ##               This is a required field used when installing the nfs server.
    ##               (this is using it to generate an inventory and generate an extra vars)
    ## - private-ip: Storage node ip address.
    ##               This is a required field used when installing the nfs server.
    ##               If you use the same IP address, you can skip it.
    ##               (this is using it to generate an inventory)
    ## - volume-dir: Storage node data directory. (default: /data/storage)
    ##               This is a required field used when installing the nfs server.
    ##               (this is using it to generate an extra vars)
    ## Optional
    ## - install: NFS Server Installation (default: false)
    #install = false
    #storage-ip = "x.x.x.x"
    #private-ip = "x.x.x.x"
    #volume-dir = "/data/storage"
    #nfs_version = "4.1"
    $ cubectl config view
    $ bin/cubectl config view
    
    [cubectl]
    
    [kubernetes]
    version = "v1.23.13"
    
    [kubernetes.etcd]
    
    
    [kubernetes.calico]
    
    [node-pool]
    
    [node-pool.master]
    ip = ["x.x.x.x","x.x.x.x","x.x.x.x"]
    
    [node-pool.node]
    
    [private-registry]
    
    [private-registry.cert-file]
    
    [shared-storage]
    
    [prepare-airgap]
    
    ~~~ν•΄λ‹Ή νŒŒμΌμ€ Control-Plane λ…Έλ“œμ˜ `/etc/kubernetes/cubectl-config-cm.yaml` 에 μ‘΄μž¬ν•©λ‹ˆλ‹€.~~~
    
    
    ### parameters
    
    * `-p <ssh key>`
        * μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ Private-Key μž…λ‹ˆλ‹€.
    
    * `-u <username>`
        * μ„€μΉ˜ ν˜ΈμŠ€νŠΈλ“€μ˜ Passwordless SSH 연결을 μœ„ν•œ μ‚¬μš©μž 계정λͺ… μž…λ‹ˆλ‹€.
    
    * `-a, --auto-approve`
      * _optional_
      * y/n 질의 절차 μƒλž΅.
    
    
    ### examples
    
    ```
    $ bin/cubectl config sync -p ~/.ssh/id_rsa -u cocktail
    
    ## Inventory for Sync the configuration task.
    ================================================================
    Node Name           IP                    Private IP
    ================================================================
    node-0              x.x.x.x
    ================================================================
    Is this ok [y/n]: y
    ```