【kubernetes】EKSで使用するkubernetes環境構築【Mac】

10月 11, 2023

どもども、キャメルクラッチオーケストラというブランドの個性的なデザインに心打たれたsaisaiです。


最近AWS EKS入門しようと思いAWSの公式チュートリアルを受講しました。


その講義ではCloud9をEKS操作環境としていましたが、これからもEKSに触れていきたいのにその都度Cloud9を立ち上げるのもなんだか嫌だなあと思いMacのローカルに同じ環境を構築したので手順を残しておこうと思います。


ここでのポイントはiOSであるということとモデルがMacBook Pro (13-inch, 2020)なのでシェルがbashではなくzshである点です。


また、予め、homebrewはインストール済みという前提ですので、まだの方はインストールしておいてください!もちろん実運用の際はdockerやdocker-composeが必要になりますのでこちらもインストールをしてきましょう〜。


それでは構築していきます。

構築開始!!

さくさくいきましょう!まずは"eksctl"をインストールします。コマンドライン上でEKSを操作できるコマンドです。

$ curl -L "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp

バージョン確認しつつ無事ダウンロードされているかを確認しましょう。
$ eksctl version

バージョンが表示されればeksctlがバッチリインストールされています!


続いてkubectlをインストールします。こちらkubernetesを操作するコマンドになります。AWS講座ではlinuxに対応したものでしたが今回はiOSに対応したものをインストールします。

$ curl -o kubectl https://amazon-eks.s3.us-west-2.amazonaws.com/1.17.12/2020-11-02/bin/darwin/amd64/kubectl

実行権限を付与しましょう
$ sudo chmod +x /usr/local/bin/kubectl

バージョン確認しつつ無事ダウンロードされているかを確認しましょう。
$ kubectl version --short --client

バージョンが表示されればkubectlがバッチリインストールされています!

kubectl先輩はこれからよくお世話になると思いますので今のうちにaliasを設定して楽に実行できるようにしておきましょう。

$ vi .zshrc
$ alias k="kubectl"
※.zshrcの再反映は後ほど行います!


続いてzsh-completionsをインストールしていきます。zshでのコマンド入力補助、予測変換補助を行ってくれます。必須では無いですがあると結構便利です。

$ brew install zsh-completions

$ sudo vi .zshrc

(お好みで有効化してください)
# 補完機能を有効にする
autoload -Uz compinit
compinit -u
if [ -e /usr/local/share/zsh-completions ]; then
  fpath=(/usr/local/share/zsh-completions $fpath)
fi

# 補完で小文字でも大文字にマッチさせる
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'

# 補完候補を詰めて表示
setopt list_packed

# 補完候補一覧をカラー表示
autoload colors
zstyle ':completion:*' list-colors ''

# コマンドのスペルを訂正
setopt correct

$ rm -f ~/.zcompdump; compinit


次にkube-ps1をインストールします。kubectlのコンテキスト、Namespaseをプロンプトに表示します。便利です。

$ git clone https://github.com/jonmosco/kube-ps1.git ~/.kube-ps

$ vi .zshrc

#kube-ps1
source ~/.kube-ps1/kube-ps1.sh
function get_cluster_short() {
  echo "$1" | cut -d . -f1
}
KUBE_PS1_CLUSTER_FUNCTION=get_cluster_short
KUBE_PS1_SUFFIX=') '
PS1='$(kube_ps1)'$PS1
kubeoff #デフォルトではオフにしておきます。必要に応じてkubeonで表示するようにしています。
#ON=kubeon OFF=kubeoff


続いてkubectxとcubensをインストールします。コンテキストやNamespaceの切り替えを容易に行うことができます。

$ git clone https://github.com/ahmetb/kubectx.git ~/.kubectx

$ vi .zshrc

#kubectx / kubens
export PATH=~/.kubectx:$PATH

.zshrcの書き換えはここまでです。再反映しておきましょう。

$ source ~/.zshrc

最後にsternをインストールします。コンテナを跨いだログ管理などができてこちらも便利です。ぜひ。

$ brew install stern

以上です!

最後に

これでこれからバリバリkubernetesやEKSと戯れることができます!頑張るぞ!


…kubernetesムズカシイ。


ここまで読んでいただきありがとうございます!


↓オススメ教材

AWS,kubernetes

Posted by CY