2017-08-29 00:19:25 +03:00
# Installing the Client Tools
In this lab you will install the command line utilities required to complete this tutorial: [cfssl ](https://github.com/cloudflare/cfssl ), [cfssljson ](https://github.com/cloudflare/cfssl ), and [kubectl ](https://kubernetes.io/docs/tasks/tools/install-kubectl ).
## Install CFSSL
The `cfssl` and `cfssljson` command line utilities will be used to provision a [PKI Infrastructure ](https://en.wikipedia.org/wiki/Public_key_infrastructure ) and generate TLS certificates.
Download and install `cfssl` and `cfssljson` from the [cfssl repository ](https://pkg.cfssl.org ):
### OS X
2019-08-03 07:03:53 +03:00
```sh
2017-09-25 22:01:11 +03:00
curl -o cfssl https://pkg.cfssl.org/R1.2/cfssl_darwin-amd64
curl -o cfssljson https://pkg.cfssl.org/R1.2/cfssljson_darwin-amd64
2017-08-29 00:19:25 +03:00
```
2019-08-03 07:03:53 +03:00
```sh
2017-09-25 22:01:11 +03:00
chmod +x cfssl cfssljson
2017-08-29 00:19:25 +03:00
```
2019-08-03 07:03:53 +03:00
```sh
2017-09-25 22:01:11 +03:00
sudo mv cfssl cfssljson /usr/local/bin/
2017-08-29 00:19:25 +03:00
```
2018-05-12 19:54:18 +03:00
Some OS X users may experience problems using the pre-built binaries in which case [Homebrew ](https://brew.sh ) might be a better option:
2019-08-03 07:03:53 +03:00
```sh
2018-05-12 19:54:18 +03:00
brew install cfssl
```
2017-08-29 00:19:25 +03:00
### Linux
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
wget -q --show-progress --https-only --timestamping \
https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 \
https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
```
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
chmod +x cfssl_linux-amd64 cfssljson_linux-amd64
```
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
sudo mv cfssl_linux-amd64 /usr/local/bin/cfssl
```
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
sudo mv cfssljson_linux-amd64 /usr/local/bin/cfssljson
```
### Verification
Verify `cfssl` version 1.2.0 or higher is installed:
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
cfssl version
```
> output
```
2019-08-03 07:03:53 +03:00
Version: 1.3.4
2017-08-29 00:19:25 +03:00
Revision: dev
2019-08-03 07:03:53 +03:00
Runtime: go1.12.7
2017-08-29 00:19:25 +03:00
```
> The cfssljson command line utility does not provide a way to print its version.
## Install kubectl
2019-08-03 07:03:53 +03:00
The `kubectl` command line utility is used to interact with the Kubernetes API Server.
Download and install latest stable `kubectl` from the official release binaries:
2017-08-29 00:19:25 +03:00
### OS X
2019-08-03 07:03:53 +03:00
```sh
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl"
2017-08-29 00:19:25 +03:00
```
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
chmod +x kubectl
```
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
sudo mv kubectl /usr/local/bin/
```
### Linux
2019-08-03 07:03:53 +03:00
```sh
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl"
2017-08-29 00:19:25 +03:00
```
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
chmod +x kubectl
```
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
sudo mv kubectl /usr/local/bin/
```
### Verification
2019-08-03 07:03:53 +03:00
Verify `kubectl` version 1.14.0 or higher is installed:
2017-08-29 00:19:25 +03:00
2019-08-03 07:03:53 +03:00
```sh
2017-08-29 00:19:25 +03:00
kubectl version --client
```
> output
```
2019-08-03 07:03:53 +03:00
Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.1", GitCommit:"4485c6f18cee9a5d3c3b4e523bd27972b1b53892", GitTreeState:"clean", BuildDate:"2019-07-18T09:18:22Z", GoVersion:"go1.12.5", Compiler:"gc", Platform:"darwin/amd64"}
2017-08-29 00:19:25 +03:00
```
Next: [Provisioning Compute Resources ](03-compute-resources.md )