Adapt 05 - Kubernetes conf files generation
parent
f2e097ad65
commit
89b4c4dc97
|
@ -10,12 +10,10 @@ In this section you will generate kubeconfig files for the `controller manager`,
|
||||||
|
|
||||||
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.
|
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:
|
Define the static public IP address (you need to replace YOUR_EXTERNAL_IP by your external IP address):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
KUBERNETES_PUBLIC_ADDRESS=$(gcloud compute addresses describe kubernetes-the-hard-way \
|
KUBERNETES_PUBLIC_ADDRESS=YOUR_EXTERNAL_IP
|
||||||
--region $(gcloud config get-value compute/region) \
|
|
||||||
--format 'value(address)')
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### The kubelet Kubernetes Configuration File
|
### The kubelet Kubernetes Configuration File
|
||||||
|
@ -62,26 +60,24 @@ worker-2.kubeconfig
|
||||||
Generate a kubeconfig file for the `kube-proxy` service:
|
Generate a kubeconfig file for the `kube-proxy` service:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
{
|
kubectl config set-cluster kubernetes-the-hard-way \
|
||||||
kubectl config set-cluster kubernetes-the-hard-way \
|
--certificate-authority=ca.pem \
|
||||||
--certificate-authority=ca.pem \
|
--embed-certs=true \
|
||||||
--embed-certs=true \
|
--server=https://${KUBERNETES_PUBLIC_ADDRESS}:6443 \
|
||||||
--server=https://${KUBERNETES_PUBLIC_ADDRESS}:6443 \
|
--kubeconfig=kube-proxy.kubeconfig
|
||||||
--kubeconfig=kube-proxy.kubeconfig
|
|
||||||
|
|
||||||
kubectl config set-credentials system:kube-proxy \
|
kubectl config set-credentials system:kube-proxy \
|
||||||
--client-certificate=kube-proxy.pem \
|
--client-certificate=kube-proxy.pem \
|
||||||
--client-key=kube-proxy-key.pem \
|
--client-key=kube-proxy-key.pem \
|
||||||
--embed-certs=true \
|
--embed-certs=true \
|
||||||
--kubeconfig=kube-proxy.kubeconfig
|
--kubeconfig=kube-proxy.kubeconfig
|
||||||
|
|
||||||
kubectl config set-context default \
|
kubectl config set-context default \
|
||||||
--cluster=kubernetes-the-hard-way \
|
--cluster=kubernetes-the-hard-way \
|
||||||
--user=system:kube-proxy \
|
--user=system:kube-proxy \
|
||||||
--kubeconfig=kube-proxy.kubeconfig
|
--kubeconfig=kube-proxy.kubeconfig
|
||||||
|
|
||||||
kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
|
kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Results:
|
Results:
|
||||||
|
@ -95,26 +91,24 @@ kube-proxy.kubeconfig
|
||||||
Generate a kubeconfig file for the `kube-controller-manager` service:
|
Generate a kubeconfig file for the `kube-controller-manager` service:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
{
|
kubectl config set-cluster kubernetes-the-hard-way \
|
||||||
kubectl config set-cluster kubernetes-the-hard-way \
|
--certificate-authority=ca.pem \
|
||||||
--certificate-authority=ca.pem \
|
--embed-certs=true \
|
||||||
--embed-certs=true \
|
--server=https://127.0.0.1:6443 \
|
||||||
--server=https://127.0.0.1:6443 \
|
--kubeconfig=kube-controller-manager.kubeconfig
|
||||||
--kubeconfig=kube-controller-manager.kubeconfig
|
|
||||||
|
|
||||||
kubectl config set-credentials system:kube-controller-manager \
|
kubectl config set-credentials system:kube-controller-manager \
|
||||||
--client-certificate=kube-controller-manager.pem \
|
--client-certificate=kube-controller-manager.pem \
|
||||||
--client-key=kube-controller-manager-key.pem \
|
--client-key=kube-controller-manager-key.pem \
|
||||||
--embed-certs=true \
|
--embed-certs=true \
|
||||||
--kubeconfig=kube-controller-manager.kubeconfig
|
--kubeconfig=kube-controller-manager.kubeconfig
|
||||||
|
|
||||||
kubectl config set-context default \
|
kubectl config set-context default \
|
||||||
--cluster=kubernetes-the-hard-way \
|
--cluster=kubernetes-the-hard-way \
|
||||||
--user=system:kube-controller-manager \
|
--user=system:kube-controller-manager \
|
||||||
--kubeconfig=kube-controller-manager.kubeconfig
|
--kubeconfig=kube-controller-manager.kubeconfig
|
||||||
|
|
||||||
kubectl config use-context default --kubeconfig=kube-controller-manager.kubeconfig
|
kubectl config use-context default --kubeconfig=kube-controller-manager.kubeconfig
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Results:
|
Results:
|
||||||
|
@ -128,26 +122,24 @@ kube-controller-manager.kubeconfig
|
||||||
Generate a kubeconfig file for the `kube-scheduler` service:
|
Generate a kubeconfig file for the `kube-scheduler` service:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
{
|
kubectl config set-cluster kubernetes-the-hard-way \
|
||||||
kubectl config set-cluster kubernetes-the-hard-way \
|
--certificate-authority=ca.pem \
|
||||||
--certificate-authority=ca.pem \
|
--embed-certs=true \
|
||||||
--embed-certs=true \
|
--server=https://127.0.0.1:6443 \
|
||||||
--server=https://127.0.0.1:6443 \
|
--kubeconfig=kube-scheduler.kubeconfig
|
||||||
--kubeconfig=kube-scheduler.kubeconfig
|
|
||||||
|
|
||||||
kubectl config set-credentials system:kube-scheduler \
|
kubectl config set-credentials system:kube-scheduler \
|
||||||
--client-certificate=kube-scheduler.pem \
|
--client-certificate=kube-scheduler.pem \
|
||||||
--client-key=kube-scheduler-key.pem \
|
--client-key=kube-scheduler-key.pem \
|
||||||
--embed-certs=true \
|
--embed-certs=true \
|
||||||
--kubeconfig=kube-scheduler.kubeconfig
|
--kubeconfig=kube-scheduler.kubeconfig
|
||||||
|
|
||||||
kubectl config set-context default \
|
kubectl config set-context default \
|
||||||
--cluster=kubernetes-the-hard-way \
|
--cluster=kubernetes-the-hard-way \
|
||||||
--user=system:kube-scheduler \
|
--user=system:kube-scheduler \
|
||||||
--kubeconfig=kube-scheduler.kubeconfig
|
--kubeconfig=kube-scheduler.kubeconfig
|
||||||
|
|
||||||
kubectl config use-context default --kubeconfig=kube-scheduler.kubeconfig
|
kubectl config use-context default --kubeconfig=kube-scheduler.kubeconfig
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Results:
|
Results:
|
||||||
|
@ -161,26 +153,24 @@ kube-scheduler.kubeconfig
|
||||||
Generate a kubeconfig file for the `admin` user:
|
Generate a kubeconfig file for the `admin` user:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
{
|
kubectl config set-cluster kubernetes-the-hard-way \
|
||||||
kubectl config set-cluster kubernetes-the-hard-way \
|
--certificate-authority=ca.pem \
|
||||||
--certificate-authority=ca.pem \
|
--embed-certs=true \
|
||||||
--embed-certs=true \
|
--server=https://127.0.0.1:6443 \
|
||||||
--server=https://127.0.0.1:6443 \
|
--kubeconfig=admin.kubeconfig
|
||||||
--kubeconfig=admin.kubeconfig
|
|
||||||
|
|
||||||
kubectl config set-credentials admin \
|
kubectl config set-credentials admin \
|
||||||
--client-certificate=admin.pem \
|
--client-certificate=admin.pem \
|
||||||
--client-key=admin-key.pem \
|
--client-key=admin-key.pem \
|
||||||
--embed-certs=true \
|
--embed-certs=true \
|
||||||
--kubeconfig=admin.kubeconfig
|
--kubeconfig=admin.kubeconfig
|
||||||
|
|
||||||
kubectl config set-context default \
|
kubectl config set-context default \
|
||||||
--cluster=kubernetes-the-hard-way \
|
--cluster=kubernetes-the-hard-way \
|
||||||
--user=admin \
|
--user=admin \
|
||||||
--kubeconfig=admin.kubeconfig
|
--kubeconfig=admin.kubeconfig
|
||||||
|
|
||||||
kubectl config use-context default --kubeconfig=admin.kubeconfig
|
kubectl config use-context default --kubeconfig=admin.kubeconfig
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Results:
|
Results:
|
||||||
|
@ -195,7 +185,7 @@ Copy the appropriate `kubelet` and `kube-proxy` kubeconfig files to each worker
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
for instance in worker-0 worker-1 worker-2; do
|
for instance in worker-0 worker-1 worker-2; do
|
||||||
gcloud compute scp ${instance}.kubeconfig kube-proxy.kubeconfig ${instance}:~/
|
scp ${instance}.kubeconfig kube-proxy.kubeconfig root@${instance}:~/
|
||||||
done
|
done
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -203,7 +193,7 @@ Copy the appropriate `kube-controller-manager` and `kube-scheduler` kubeconfig f
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
for instance in controller-0 controller-1 controller-2; do
|
for instance in controller-0 controller-1 controller-2; do
|
||||||
gcloud compute scp admin.kubeconfig kube-controller-manager.kubeconfig kube-scheduler.kubeconfig ${instance}:~/
|
scp admin.kubeconfig kube-controller-manager.kubeconfig kube-scheduler.kubeconfig root@${instance}:~/
|
||||||
done
|
done
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue