or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
.. Chaos Engineering master file, created by
sphinx-quickstart on Mon Dec 3 16:11:36 2018.
You can adapt this file completely to your liking, but it should at least
contain the root
toctree
directive.Our vision <#>
__Understand the basics <#understand-the-basics>
__Prerequisites to use chaos engineering <#prerequisites-to-use-chaos-engineering>
__Prerequisites to use chaos Template <#prerequisites-to-use-chaos-template>
__Tutorial <#tutorials>
__Scenarios <#scenarios-to-test>
__=========================================================
Our vision
To bring Chaos engineering into ING and upscale the applications to reduce the Application outage time.
.. toctree::
:maxdepth: 2
:caption: Contents:
Understand the basics
The tool which we used to conduct the chaos engineering in ICHP is Kubemonkey.
kube-monkey is an implementation of Netflix's Chaos Monkey for Kubernetes clusters. It randomly deletes Kubernetes (k8s) pods in the cluster encouraging and validating the development of failure-resilient services.
kube-monkey works on an opt-in model and will only schedule terminations for Kubernetes (k8s) apps that have explicitly agreed to have their pods terminated by kube-monkey.
Prerequisites to use chaos engineering
Note: This is to identify the victim pod by kubemonkey
Prerequisites to use chaos Template
Azure Devops <https://theforge.ing.net/product/42426/documentation/latest/gettingstarted>
_CDaaS Bootcamp <https://theforge.ing.net/product/42426/documentation/latest/journey>
_ and/orPluralsight <https://www.pluralsight.com/courses/azure-functions-fundamentals>
_ICHP namespace <https://confluence.ing.net/pages/viewpage.action?pageId=733195192>
_ for your all your environmentspluralsight course <https://www.pluralsight.com/courses/kubernetes-getting-started>
_ICHP <https://confluence.ing.net/display/ICHP/FAQ>
_ worksTutorials
Getting started with Templates
This template is used to start the kubemonkey application and run it in the kubernetes cluster (ICHP).
Template dependencies
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
| Parameter | Type | Required | Description | Default |
+++=+=====================++
|config.dryRun |boolean |Yes |will not kill pods, only logs behaviour |true |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.runHour |int |Yes | schedule start time in 24hr format |8 |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.startHour |int |Yes | pod killing start time in 24hr format |10 |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.endHour |int |Yes | pod killing stop time in 24hr format |16 |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.whitelistedNamespaces |string |Yes | pods in this namespace that opt-in will be killed | |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.blacklistedNamespaces |string |Yes | pods in this namespace that opt-in will be killed |kube-system |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.timeZone |string |Yes | time zone in DZ format |America/New_York|
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.debug.enabled |boolean |Yes | debug mode,need to be enabled to see debuging behaviour |true |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
|config.debug.schedule_immediate_kill |boolean |Yes | immediate pod kill matching other rules apart from time |true |
±––––––––––––––––––-±–––-±–––––±––––––––––––––––––––––––––––±–––––––-+
Usage
.. code-block:: yaml
:linenos:
resources:
repositories:
type: git
name: 'IngOne/[P00173]-templates' #
ref: master ### refers to the branch in the repository
stages:
Call on the 4 build templates:
#- push-to-checkmarx
#- build-app/maven
#- get-resources (optional)
#- build-docker-image
parameters:
These are the minimum REQUIRED parameters for the three templates
incomingFeed: 'P0xxxx-incoming-private' ### Fill in your artifact feedtargetBinaryDirectory: 'web/target/' ### Fill in your target binary folder (commonly web/target/)
targetConfigurationDirectory: 'build-ichp-configs/target/' ### Fill in your target config folder (commonly conf/target/)
These are the minimum OPTIONAL parameters for the 4th template -> get-resources
autoResources: trueappName: 'TestMyApp'
appId: '0548bc72-5fe8-4305-b08b-12a8ee8e95b9'
purposeID: 'P0xxxx'
Scenarios to test
±–––––––––––±–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-+
|kube-monkey/kill-mode | The kube-monkey's default behavior is to kill only one pod in the cluster, but you can change it to add more: |
±–––––––––––±–––––––––±–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-+
| |kill-all | Kill every pod, no matter what is happening with a pod |
±–––––––––––±–––––––––±–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-+
| |fixed | Pick a number of pods you want to kill |
±–––––––––––±–––––––––±–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-+
| |Random-max-percent | to specify a maximum % with kill-value that can be killed. At the scheduled time, a uniform random specified % of the running pods will be terminated |
±–––––––––––±–––––––––±–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-+
| |fixed-percent | Kill a fixed percent of pods (e.g., 50%) |
±–––––––––––±–––––––––±–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––-+
Who are we?
We are the
Optimus Prime <https://cdportal.ing.net/teams/BEEnvironmentServicesMonitoring/tab/empl>
_ team, and this is our ChaosTestingICHP templates code. You can reach us for any questions regarding The ChaosTestingICHP pipeline templates on our Mattermost channel.