Improved Kubernetes cluster documentation
This commit is contained in:
parent
350d47b120
commit
3a1c789fcf
@ -1,8 +1,61 @@
|
|||||||
# Introduction to kubectl
|
# Introduction to kubectl
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
For using this you must install the following tools:
|
||||||
|
|
||||||
|
- Python
|
||||||
|
- Pip
|
||||||
|
- Kubectl
|
||||||
|
- Openstack-Client
|
||||||
|
|
||||||
|
### Python
|
||||||
|
|
||||||
|
Install python and pip for your OS, if it is not installed. This is already done at the NetLab PCs.
|
||||||
|
|
||||||
|
### Installing kubectl and arkade
|
||||||
|
|
||||||
|
Run this in a **bash** terminal to download arkade and install kubectl:
|
||||||
|
|
||||||
|
For windows you can use e.g. the **Git Bash** terminal.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
curl -sLS https://dl.get-arkade.dev | sh
|
||||||
|
arkade get kubectl
|
||||||
|
# To load the path to the binary
|
||||||
|
export PATH=$PATH:$HOME/.arkade/bin/
|
||||||
|
```
|
||||||
|
|
||||||
|
With arkade you can also install other tools: ```arkade get``` to see all possibilities.
|
||||||
|
|
||||||
|
### Openstack Client
|
||||||
|
|
||||||
|
To install the Openstack client and the magnum package:
|
||||||
|
|
||||||
|
If you are using Windows, you must start the bash terminal with **Administrator** privileges!
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip3 install openstackclient python-magnumclient
|
||||||
|
# Download the Openstack RC File from your Openstack account
|
||||||
|
# Load the file
|
||||||
|
source {USERNAME}-openrc.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Download the kubeconfig
|
||||||
|
|
||||||
|
Download the kubeconfig file for your cluster from OpenStack.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Before using this, check if Openstack RC File is loaded!
|
||||||
|
openstack coe cluster config {CLUSTER_NAME}
|
||||||
|
# Then run the given command in terminal
|
||||||
|
export ...
|
||||||
|
# Now you are able to run kubectl commands at your Kubernetes cluster
|
||||||
|
```
|
||||||
|
|
||||||
## Deployment of the needed description in kubernetes
|
## Deployment of the needed description in kubernetes
|
||||||
|
|
||||||
These are two approaches to create the description in Kuberentes:
|
These are two approaches to create the description in Kubernetes:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# create a namespace
|
# create a namespace
|
||||||
@ -41,10 +94,10 @@ kubectl logs -n web-test deployment/nginx-deployment
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# scale up instances to 5
|
# scale up instances to 5
|
||||||
kubectl scale deployment/nginx-deployment --replicas=5
|
kubectl scale -n web-test deployment/nginx-deployment --replicas=5
|
||||||
|
|
||||||
# scale down instances again to 3
|
# scale down instances again to 3
|
||||||
kubectl scale deployment/nginx-deployment --replicas=3
|
kubectl scale -n web-test deployment/nginx-deployment --replicas=3
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
20
kubernetes-example/nginx.yml
Normal file
20
kubernetes-example/nginx.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx-deployment
|
||||||
|
namespace: web-test
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nginx-deployment
|
||||||
|
replicas: 3 # tells deployment to run 3 pods matching the template
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx-deployment
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: nginx:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
16
kubernetes-example/service.yml
Normal file
16
kubernetes-example/service.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: nginx-service
|
||||||
|
namespace: web-test
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
selector:
|
||||||
|
app: nginx-deployment
|
||||||
|
ports:
|
||||||
|
# By default and for convenience, the `targetPort` is set to the same value as the `port` field.
|
||||||
|
- port: 80
|
||||||
|
targetPort: 80
|
||||||
|
# Optional field
|
||||||
|
# By default and for convenience, the Kubernetes control plane will allocate a port from a range (default: 30000-32767)
|
||||||
|
nodePort: 30007
|
Loading…
x
Reference in New Issue
Block a user