# kubectl-like CLI tool for Amazon EKS

အားလုံးပဲမင်္ဂလာပါခင်ဗျာ။ ဒီနေ့မှာတော့ Amazon Elastic Kubernetes Service (EKS) ကို demo စမ်းဖို့အတွက် AWS ကနေမှ developed လုပ်ထားတဲ့ tool အကြောင်းကိုပြောပြမှာပဲဖြစ်ပါတယ်။ အဲ့ဒီ tool ရဲ့ nameလေးကတော့ eksdemo ပဲဖြစ်ပါတယ်။ `eksdemo` ဆိုတာဟာ Amazon EKS ကို testing, and demoing အတွက် အလွန်လွယ်ကူအောင် ဖန်တီးပေးထားတဲ့ command-line (CLI) tool တစ်ခုဖြစ်ပါတယ်။ သူ့ကို `kubectl`\-like tool လို့ ခေါ်ဆိုရတဲ့ အကြောင်းရင်းကတော့ `kubectl` ရဲ့ command structure ကို အခြေခံထားပြီး အသုံးပြုရ ရင်းနှီးအောင် လုပ်ဆောင်ထားလို့ ဖြစ်ပါတယ်။ ဒါပေမဲ့ သူ့ရဲ့ အဓိကရည်ရွယ်ချက်ကတော့ `kubectl` ထက် ပိုပြီး Amazon EKS နဲ့ AWS service တွေကြားက ဆက်စပ်မှုကို ရှင်းရှင်းလင်းလင်းနဲ့ အလွယ်တကူ မြင်နိုင်အောင် ကူညီပေးဖို့ ဖြစ်ပါတယ်။

#### `kubectl`\-like Command Structure

`eksdemo` ဟာ `kubectl` လိုပဲ သုံးပါတယ်။ example:

* `eksdemo get nodegroup`
    

```bash
❯ eksdemo get nodegroup --cluster vtmm-cluster-1
+---------+--------+-----------------------+-------+-----+-----+-----------------+-----------+----------------+
|   Age   | Status |         Name          | Nodes | Min | Max |     Version     |   Type    |  Instance(s)   |
+---------+--------+-----------------------+-------+-----+-----+-----------------+-----------+----------------+
| 5 hours | ACTIVE | eks-master-node       |     1 |   1 |   2 | 1.32.9-20250920 | ON_DEMAND | c7i-flex.large |
| 6 hours | ACTIVE | eks-worker-node-group |     1 |   1 |   2 | 1.32.9-20250920 | ON_DEMAND | c7i-flex.large |
+---------+--------+-----------------------+-------+-----+-----+-----------------+-----------+----------------+
```

ဒီလို တူညီတဲ့ပုံစံကြောင့် `kubectl` နဲ့ ရင်းနှီးပြီးသားသူတွေအတွက် `eksdemo` ကို သုံးရတာ အလွန်လွယ်ကူပါတယ်။ `get`, `create`, `delete` ဆိုတာတွေကို အဓိကသုံးပါတယ်။

#### `kubectl` ထက် ဘာတွေပိုထူးခြားလဲ။

`eksdemo` ရဲ့ အဓိက အားသာချက်ကတော့ Kubernetes object တွေကို AWS resource တွေနဲ့ ချိတ်ဆက်ပြီး ပြသနိုင်စွမ်း ဖြစ်ပါတယ်။

* **Viewpoint ကွာခြားမှု:**
    
    * `kubectl` က Kubernetes API ကိုပဲ အဓိကထားပြီး အလုပ်လုပ်ပါတယ်။ Cluster ထဲက resource တွေကိုပဲ ပြသနိုင်ပါတယ်။
        
    * `eksdemo` ကတော့ Kubernetes API ရော၊ AWS API ကိုပါ တစ်ပြိုင်တည်း အသုံးပြုပါတယ်။ ဒါကြောင့် Kubernetes resource တစ်ခုနဲ့ ဆက်စပ်နေတဲ့ AWS resource ကိုပါ တစ်ပါတည်း ဖော်ပြပေးနိုင်ပါတယ်။
        
        ```bash
        ❯ eksdemo get ec2-instance
        +---------+------------+---------------------+--------------------------------+----------------+------------+
        |   Age   |   State    |         Id          |              Name              |      Type      |    Zone    |
        +---------+------------+---------------------+--------------------------------+----------------+------------+
        | 6 hours | running    | i-06dbfbc142668cb88 |                                | c7i-flex.large | us-east-1a |
        | 6 hours | running    | i-0497519f86b5f5981 |                                | c7i-flex.large | us-east-1c |
        +---------+------------+---------------------+--------------------------------+----------------+------------+
        ```
        
        ```bash
        ❯ eksdemo get vpc
        +-----------------------+-----------------------------+----------------+--------------+
        |          Id           |            Name             |  IPv4 CIDR(s)  | IPv6 CIDR(s) |
        +-----------------------+-----------------------------+----------------+--------------+
        | vpc-00bce47ab8ea38db0 | *                           | 172.31.0.0/16  | -            |
        +-----------------------+-----------------------------+----------------+--------------+
        * Indicates default VPC
        ```
        
    * **Viewing Node:**
        
        * `kubectl get nodes` လို့ရိုက်ရင် Kubernetes node တွေရဲ့ နာမည်၊ status, role, version စတာတွေကိုပဲ မြင်ရပါမယ်။
            
        * `eksdemo get node` လို့ရိုက်ရင်တော့ အဲ့ဒီ Kubernetes node ရဲ့ အောက်မှာ run နေတဲ့ **EC2 Instance ID, Instance Type, Subnet ID, AMI (Amazon Machine Image)** စတဲ့ AWS အချက်အလက်တွေကိုပါ တစ်ခါတည်း တွဲပြီးပြပေးပါတယ်။
            
            ```bash
            ❯ eksdemo get node --cluster vtmm-cluster-1
            +---------+--------------------+---------------------+----------------+------------+-----------------------+
            |   Age   |        Name        |     Instance Id     |      Type      |    Zone    |       Nodegroup       |
            +---------+--------------------+---------------------+----------------+------------+-----------------------+
            | 6 hours | ip-172-31-33-128.* | i-0497519f86b5f5981 | c7i-flex.large | us-east-1c | eks-master-node       |
            | 6 hours | ip-172-31-89-30.*  | i-06dbfbc142668cb88 | c7i-flex.large | us-east-1a | eks-worker-node-group |
            +---------+--------------------+---------------------+----------------+------------+-----------------------+
            * Names end with "ec2.internal"
            ```
            

command usage အသေးစိတ်အတွက်ကိုလည်း eksdemo ရဲ့ repo လေးကို အောက်မှာထည့်ပေးထားပါတယ်။

အားလုံးပဲအချိန်ပေးပြီးဖတ်ရှုပေးတဲ့အတွက်ကျေးဇူးတင်ပါတယ်။

%[https://github.com/awslabs/eksdemo]
