79 lines
2.0 KiB
Markdown
79 lines
2.0 KiB
Markdown
|
# Configuring kubectl for Remote Access
|
||
|
|
||
|
In this lab you will generate a kubeconfig file for the `kubectl` command line utility based on the `admin` user credentials.
|
||
|
|
||
|
> Run the commands in this lab from the same directory used to generate the admin client certificates.
|
||
|
|
||
|
## The Admin Kubernetes Configuration File
|
||
|
|
||
|
Each kubeconfig requires a Kubernetes API Server to connect to. To support high availability the IP address assigned to the external load balancer fronting the Kubernetes API Servers will be used.
|
||
|
|
||
|
Retrieve the `kubernetes-the-hard-way` static IP address:
|
||
|
|
||
|
```
|
||
|
KUBERNETES_PUBLIC_ADDRESS=$(gcloud compute addresses describe kubernetes-the-hard-way \
|
||
|
--region $(gcloud config get-value compute/region) \
|
||
|
--format 'value(address)')
|
||
|
```
|
||
|
|
||
|
Generate a kubeconfig file suitable for authenticating as the `admin` user:
|
||
|
|
||
|
```
|
||
|
kubectl config set-cluster kubernetes-the-hard-way \
|
||
|
--certificate-authority=ca.pem \
|
||
|
--embed-certs=true \
|
||
|
--server=https://${KUBERNETES_PUBLIC_ADDRESS}:6443
|
||
|
```
|
||
|
|
||
|
```
|
||
|
kubectl config set-credentials admin \
|
||
|
--client-certificate=admin.pem \
|
||
|
--client-key=admin-key.pem
|
||
|
```
|
||
|
|
||
|
```
|
||
|
kubectl config set-context kubernetes-the-hard-way \
|
||
|
--cluster=kubernetes-the-hard-way \
|
||
|
--user=admin
|
||
|
```
|
||
|
|
||
|
```
|
||
|
kubectl config use-context kubernetes-the-hard-way
|
||
|
```
|
||
|
|
||
|
## Verification
|
||
|
|
||
|
Check the health of the remote Kubernetes cluster:
|
||
|
|
||
|
```
|
||
|
kubectl get componentstatuses
|
||
|
```
|
||
|
|
||
|
> output
|
||
|
|
||
|
```
|
||
|
NAME STATUS MESSAGE ERROR
|
||
|
controller-manager Healthy ok
|
||
|
scheduler Healthy ok
|
||
|
etcd-2 Healthy {"health": "true"}
|
||
|
etcd-0 Healthy {"health": "true"}
|
||
|
etcd-1 Healthy {"health": "true"}
|
||
|
```
|
||
|
|
||
|
List the nodes in the remote Kubernetes cluster:
|
||
|
|
||
|
```
|
||
|
kubectl get nodes
|
||
|
```
|
||
|
|
||
|
> output
|
||
|
|
||
|
```
|
||
|
NAME STATUS AGE VERSION
|
||
|
worker-0 Ready 7m v1.7.4
|
||
|
worker-1 Ready 4m v1.7.4
|
||
|
worker-2 Ready 1m v1.7.4
|
||
|
```
|
||
|
|
||
|
Next: [Provisioning Pod Network Routes](11-pod-network-routes.md)
|