Improved Kubernetes cluster documentation
This commit is contained in:
		@@ -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
 | 
				
			||||||
		Reference in New Issue
	
	Block a user