Skip to main content

kubectl-style command line client for AWS ECS.

Project description

kubectl-style command line tool for AWS EC2 Container Service (ECS)

https://img.shields.io/pypi/v/ecsctl.svg travis-ci

Installation

pip install ecsctl

Purpose

A convenient command line tool to view ECS cluster status and do troubleshooting.

This tool is trying to provide similar functionality of kubectl for kubernetes.

Of course, ECS and kubernetes are so different. Many features on kubernetes are not possible here in ECS.

Some AWS official projects to check out:

Usage

Cluster

List nodes:

% ecsctl get clusters
NAME     STATUS      RUNNING    PENDING    INSTANCE COUNT
default  ACTIVE            3          0                 2

Get cluster details:

% ecsctl describe cluster mycluster

Create/delete cluster:

% ecsctl create cluster mycluster

Container Instances (nodes)

List nodes:

% ecsctl get nodes --cluster mycluster
INSTANCE ID                           EC2 INSTANCE ID      STATUS      RUNNING COUNT
00000000-1111-2222-3333-444444444444  i-abcdef123456abcde  ACTIVE                  1

Get node detail:

% ecsctl describe node 00000000-1111-2222-3333-444444444444

Drain/undrain node:

% ecsctl drain 00000000-1111-2222-3333-444444444444

Services

List services:

% ecsctl get services

List services in certain order:

% ecsctl get services --sort-by "createdAt"

Delete a service:

% ecsctl delete service badservice

Delete a service (even if it has desiredCount > 0):

% ecsctl delete service badservice --force

Run container quick start

% ecsctl run mycontainer --image busybox
mycontainer

% ecsctl get services
NAME             TASK DEFINITION      DESIRED    RUNNING  STATUS    AGE
mycontainer-svc  mycontainer:1              1          0  ACTIVE    10 seconds ago

Run docker exec on containers (Requires customizing docker daemon to listen on internal addresses)

% ecsctl get tasks
TASK ID                               STATUS    TASK DEFINITION    AGE
42f052c4-80e9-411d-bea2-407b0b4a4b0b  PENDING   mycontainer:1      2 minutes ago

% ecsctl exec 42f052c4-80e9-411d-bea2-407b0b4a4b0b date
Fri May 26 00:13:24 PDT 2017

% ecsctl exec -it 42f052c4-80e9-411d-bea2-407b0b4a4b0b /bin/bash
root@container:/# (interactive)

Configure docker daemon to allow ecsctl exec

  1. Let docker daemon listen on TCP ports (required)

Add options like -H tcp://0.0.0.0:MYDOCKERPORT or environment variable DOCKER_HOST=tcp://0.0.0.0:MYDOCKERPORT to configure docker daemon. See dockerd documentation for more information.

  1. Security enhancement: dropping traffic from ECS containers to docker daemon.

    iptables --insert INPUT 1 \
             --in-interface docker+ \
             --protocol tcp \
             --destination-port MYDOCKERPORT \
             --jump DROP

Configs

Set default cluster name (equivalent to --cluster option)

% ecsctl config set cluster mycluster

Set default docker daemon port

% ecsctl config set docker_port 2375

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecsctl-20190417.tar.gz (9.7 kB view details)

Uploaded Source

File details

Details for the file ecsctl-20190417.tar.gz.

File metadata

  • Download URL: ecsctl-20190417.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.4.3 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/2.7.15

File hashes

Hashes for ecsctl-20190417.tar.gz
Algorithm Hash digest
SHA256 02efdc822f8fc0f610eb79e56d562ef17a4a64730c4ea2597a4ff4882ae8bdb0
MD5 384787e23fd4a1482eab20334796613e
BLAKE2b-256 b472bab25dddea179a210122b14ab88da90e79826d29ef59c55a747f2fe82831

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page