- Pipeline
An automated process that defines a series of stages or steps to build, test and deploy SW solutions.
- Continuous Integration (CI)
| # managed or not | |
| kubectl get no -owide | |
| # events events events | |
| kubectl get events -A --sort-by=.metadata.creationTimestamp | |
| # RBAC what can I do | |
| kubectl auth can-i --list | |
| # discovering CRDs |
The upgrade process (docs) follows the general procedure of:
- Upgrading the Kubernetes control plane with kubeadm (Kubernetes components and add-ons excluding the CNI)
- If applicable upgrading the CNI network plugin
- Upgrading the Kubernetes packages (kubelet, kubeadm, kubectl) on the control plane and worker nodes
- Upgrading the kubelet config on worker nodes with kubeadm
# check cluster nodes and version
kubectl get no -owide| #!/usr/bin/env bash | |
| ########################################### | |
| # ## | |
| # @dejanualex: Trivy based image scanner ## | |
| # ## | |
| ########################################### | |
| version: '3.1' | |
| services: | |
| db: | |
| image: mysql | |
| command: --default-authentication-plugin=mysql_native_password | |
| restart: always | |
| environment: | |
| MYSQL_ROOT_PASSWORD: example |
| #!/bin/bash | |
| ## ##################################################################### | |
| ## run concurrently command passed as argv on multiple remote servers ## | |
| ## UPDATE: servers array and user variable ## | |
| ######################################################################## | |
| # define an array of remote servers | |
| servers=("server1.fqdn" "server2.fqdn" "server3.fqdn") | |
| # Function to execute command on a remote server | |
| execute_command() { | |
| server=$1 |
| #!/usr/bin/env bash | |
| ############################################################# | |
| # Purpose: wrapper for inspecting Requests/Limits for Pods ## | |
| # @dejanualex ## | |
| ############################################################# | |
| # read namespace and po | |
| echo -e "Available namespaces are:\n $(kubectl get ns -o=custom-columns=NAMESPACES:.metadata.name) \n" | |
| echo -e "\n Please write the name of the namespace for which you want to know the resource status:\n" |
| #!/usr/bin/env bash | |
| ################################################################################################ | |
| # kubectl wrapper that generates a report concerning cluster state, ## | |
| # which creates a dir with compiled information regarding: ## | |
| # - control plane components status, cluster events, nodes description, and namespace events ## | |
| ################################################################################################ | |
| # Get nodes, componentsstatuses, and pods for control-plane | |
| echo -e "\e[0;32m Cluster Nodes: \e[0m \n $(kubectl get nodes -owide)" |
| # get available k8s versions for AKS, e.g. for location westeurope | |
| az aks get-versions --location westeurope | jq ".orchestrators[] | .orchestratorVersion" | |
| # get available versions for your AKS | |
| az aks get-upgrades --resource-group <resourcegroup_name> --name <aks_name> --output table | |
| # check your k8s version for control plane and woker node pool | |
| az aks show -g <resourcegroup_name> -n <resourcegroup_name>| grep -E "orchestratorVersion|kubernetesVersion" | |
| # update max-surge to 3 nodes, you can use percentage also e.g.50% (for a node surges half of the no of nodes from the node pool) |