AKS Upgrade Doctor is a client side, self-help diagnostic tool designed to identify and detect possible issues that cause upgrade operations to fail on AKS clusters. This project was created as part of Microsoft's annual global hackathon and is currently in a beta state.
-Warn customers of incorrect Kubernetes cluster configurations before they try to perform an upgrade
-Reduce number of clusters that get stuck in a failure state, resulting in a negative impact to the end customer
-Allow for addition of new rule set via rules set engine
This hackathon project focuses primarily on upgrade related issues although there is a protenial for the tool to evolve in the future.The first problem we are tackling is the detection of restrictive PDBs configured on AKS clusters that cause upgrade operations to fail. Out of scope is the identification and detection of all other cluster issues.
Inspired by kube-bench, this project is implemented as a rule engine in Go lang and separates :
-Definitions of the rules to check or detect
-Giving visual feedback of progress
-Structure and display of the results
This implementation provides an extensible architecture which allows for the addition of further rules with minimal effort. Rule definitions can currently encompass anything that can be achieved with kubectl and ARM API calls.
Please refer back to this page for additional capabiltiies in the future.
# build
$ make build
go build -o bin/aks-doctor ./aks/upgrade
# run
$ ./bin/aks-doctor
Usage:
aks-doctor [command]
Available Commands:
completion generate the autocompletion script for the specified shell
demo demo for pdb
help Help about any command
Flags:
-h, --help help for aks-doctor
Use "aks-doctor [command] --help" for more information about a command.