0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

kubernetes the hard way on PC (5.Client Tools)

Last updated at Posted at 2020-07-14

#初めに
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


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?