#初めに
「kubernetes the hard way を PC でやってみる」の5回目、「Client Tools」についてです。( 目次 )
ようやく kubernetes the hard way の一番最初のところにたどり着きました。
kubernetes the hard way 自体の構成は以下のようになっています。
- Prerequisites
- Installing the Client Tools
- Provisioning Compute Resources
- Provisioning the CA and Generating TLS Certificates
- Generating Kubernetes Configuration Files for Authentication
- Generating the Data Encryption Config and Key
- Bootstrapping the etcd Cluster
- Bootstrapping the Kubernetes Control Plane
- Bootstrapping the Kubernetes Worker Nodes
- Configuring kubectl for Remote Access
- Provisioning Pod Network Routes
- Deploying the DNS Cluster Add-on
- Smoke Test
- Cleaning Up
このうち、 Prerequisites に関しては、Google Cloud Platform の準備の話ですので
割愛します。(第1回目~3回目がそれに相当します)
ただ、 Prerequisites に記載のある tmux の使い方については知っていても損は無いと思います。
この記事では、 「Installing the Client Tools」 部分について記載します。
- cfssl、cfssljson の導入
- kubectl の導入
cfssl は、暗号化や認証のための TLS 証明書を発行するためのツールです。
kubectl は、kubernetes API server と連携するためのコマンドです。
kubectl は kubernetes を使う上で最もよく使うコマンドになります。
#cfssl、cfssljson の導入
cfssl 自体の最新版は github の cloudflare / cfssl で開発されています。
リンク先の右側の Releases を見れば最新版が何か確認できます。 (2020/06時点で 1.4.1)
Releases のページに、 各プラットフォーム向けにビルドされたものがありますので、それをダウンロードしてくるだけです。
例えば、 cfssl 1.4.1 の Linux AMD64 プラットフォーム向けの URL は以下の通りです。
cfssl と cfssljson をパスの通っている /usr/local/bin にダウンロードします。
curl の -o で出力ファイル名を指定し、 -L で URL を指定しています。
root@k8smaster0:~# cd /usr/local/bin
root@k8smaster0:/usr/local/bin# curl -o cfssl -L https://github.com/cloudflare/cfssl/releases/download/v1.4.1/cfssl_1.4.1_linux_amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 634 100 634 0 0 1837 0 --:--:-- --:--:-- --:--:-- 1832
100 14.1M 100 14.1M 0 0 3904k 0 0:00:03 0:00:03 --:--:-- 5753k
root@k8smaster0:/usr/local/bin# curl -o cfssljson -L https://github.com/cloudflare/cfssl/releases/download/v1.4.1/cfssljson_1.4.1_linux_amd64
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 638 100 638 0 0 1898 0 --:--:-- --:--:-- --:--:-- 1893
100 9272k 100 9272k 0 0 2975k 0 0:00:03 0:00:03 --:--:-- 4910k
ダウンロードが完了したら、実行権限を付け、簡単な動作確認を行います。
root@k8smaster0:/usr/local/bin# chmod 755 cfssl*
root@k8smaster0:/usr/local/bin# ls -l
total 23772
-rwxr-xr-x 1 root root 14842064 May 7 13:55 cfssl
-rwxr-xr-x 1 root root 9495504 May 7 13:55 cfssljson
バージョンが確認できればOKです。
root@k8smaster0:/usr/local/bin# cfssl version
Version: 1.4.1
Runtime: go1.12.12
root@k8smaster0:/usr/local/bin# cfssljson --version
Version: 1.4.1
Runtime: go1.12.12
#kubectl の導入
kubectl の最新版(安定版)のバージョンを確認するには、以下の URL にアクセスします。
https://storage.googleapis.com/kubernetes-release/release/stable.txt
2020/07/05 時点では、 v1.18.5 でした。 (なぜ 1.16 で環境を作ったのか今となっては全くわかりません。。。)
ダウンロードは下記の URL になります。 (バージョンのところを v1.16.9 に変えれば該当のバージョンのものがダウンロードできます)
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.5/bin/linux/amd64/kubectl
root@k8smaster0:/data/kubernetes# curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.16.9/bin/linux/amd64/kubectl
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 40.9M 100 40.9M 0 0 27.8M 0 0:00:01 0:00:01 --:--:-- 27.8M
この辺りは、 kubernetes のドキュメントそのままで、各ディストリビューションのパッケージマネージャーを使う方法も
記載されています。
kubectlのインストールおよびセットアップ
https://kubernetes.io/ja/docs/tasks/tools/install-kubectl/
ダウンロード後、実行権限を付けて、 /usr/local/bin にコピーします。
その後、バージョンを確認します。
root@k8smaster0:/data/kubernetes# chmod 755 kubectl
root@k8smaster0:/data/kubernetes# ls -l kubectl
-rwxr-xr-x 1 root root 44027904 May 9 01:23 kubectl
root@k8smaster0:/data/kubernetes# cp kubectl /usr/local/bin
root@k8smaster0:/# kubectl version --client
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.9", GitCommit:"a17149e1a189050796ced469dbd78d380f2ed5ef", GitTreeState:"clean", BuildDate:"2020-04-16T11:44:51Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
今回はここまでとして、次回は Provisioning a CA and Generating TLS Certificates の部分を実施します。
証明書部分はやればできるけれど、理解は難しい、という部分なので自分なりに丁寧にやりたいと思います。
← 4.Clone 作成
↑ 目次
→ 6.Certificates