From 348aaa5fe8e6e2d2eab75413a498f9409daeb31d Mon Sep 17 00:00:00 2001 From: Michael Cade Date: Thu, 24 Feb 2022 20:14:10 +0000 Subject: [PATCH] fix .git file in Kubernetes --- .../master/virtualbox/action_provision | 1 + .../master/virtualbox/action_set_name | 1 + .../machines/master/virtualbox/box_meta | 1 + .../machines/master/virtualbox/creator_uid | 1 + .../.vagrant/machines/master/virtualbox/id | 1 + .../machines/master/virtualbox/index_uuid | 1 + .../machines/master/virtualbox/private_key | 27 ++ .../machines/master/virtualbox/synced_folders | 1 + .../machines/master/virtualbox/vagrant_cwd | 1 + .../node01/virtualbox/action_provision | 1 + .../node01/virtualbox/action_set_name | 1 + .../machines/node01/virtualbox/box_meta | 1 + .../machines/node01/virtualbox/creator_uid | 1 + .../.vagrant/machines/node01/virtualbox/id | 1 + .../machines/node01/virtualbox/index_uuid | 1 + .../machines/node01/virtualbox/private_key | 27 ++ .../machines/node01/virtualbox/synced_folders | 1 + .../machines/node01/virtualbox/vagrant_cwd | 1 + .../node02/virtualbox/action_provision | 1 + .../node02/virtualbox/action_set_name | 1 + .../machines/node02/virtualbox/box_meta | 1 + .../machines/node02/virtualbox/creator_uid | 1 + .../.vagrant/machines/node02/virtualbox/id | 1 + .../machines/node02/virtualbox/index_uuid | 1 + .../machines/node02/virtualbox/private_key | 27 ++ .../machines/node02/virtualbox/synced_folders | 1 + .../machines/node02/virtualbox/vagrant_cwd | 1 + Days/Kubernetes/.vagrant/rgloader/loader.rb | 9 + Days/Kubernetes/Rancher/.gitignore | 33 ++ Days/Kubernetes/Rancher/Vagrantfile | 40 +++ Days/Kubernetes/Rancher/scripts/common.sh | 91 ++++++ Days/Kubernetes/Rancher/scripts/master.sh | 83 ++++++ Days/Kubernetes/Rancher/scripts/node.sh | 14 + Days/Kubernetes/Vagrantfile | 40 +++ Days/Kubernetes/configs/config | 19 ++ Days/Kubernetes/configs/join.sh | 1 + Days/Kubernetes/configs/token | 1 + Days/Kubernetes/nginx-stateless-demo.yaml | 41 +++ Days/Kubernetes/pacman-ingress.yaml | 17 ++ Days/Kubernetes/pacman-stateful-demo.yaml | 281 ++++++++++++++++++ Days/Kubernetes/scripts/common.sh | 91 ++++++ Days/Kubernetes/scripts/master.sh | 83 ++++++ Days/Kubernetes/scripts/node.sh | 14 + Days/Kubernetes/statefulset.yaml | 86 ++++++ 44 files changed, 1049 insertions(+) create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/action_provision create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/action_set_name create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/box_meta create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/creator_uid create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/id create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/index_uuid create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/private_key create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/synced_folders create mode 100644 Days/Kubernetes/.vagrant/machines/master/virtualbox/vagrant_cwd create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_provision create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_set_name create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/box_meta create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/creator_uid create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/id create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/index_uuid create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/private_key create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/synced_folders create mode 100644 Days/Kubernetes/.vagrant/machines/node01/virtualbox/vagrant_cwd create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_provision create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_set_name create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/box_meta create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/creator_uid create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/id create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/index_uuid create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/private_key create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/synced_folders create mode 100644 Days/Kubernetes/.vagrant/machines/node02/virtualbox/vagrant_cwd create mode 100644 Days/Kubernetes/.vagrant/rgloader/loader.rb create mode 100644 Days/Kubernetes/Rancher/.gitignore create mode 100644 Days/Kubernetes/Rancher/Vagrantfile create mode 100644 Days/Kubernetes/Rancher/scripts/common.sh create mode 100644 Days/Kubernetes/Rancher/scripts/master.sh create mode 100644 Days/Kubernetes/Rancher/scripts/node.sh create mode 100644 Days/Kubernetes/Vagrantfile create mode 100644 Days/Kubernetes/configs/config create mode 100644 Days/Kubernetes/configs/join.sh create mode 100644 Days/Kubernetes/configs/token create mode 100644 Days/Kubernetes/nginx-stateless-demo.yaml create mode 100644 Days/Kubernetes/pacman-ingress.yaml create mode 100644 Days/Kubernetes/pacman-stateful-demo.yaml create mode 100644 Days/Kubernetes/scripts/common.sh create mode 100644 Days/Kubernetes/scripts/master.sh create mode 100644 Days/Kubernetes/scripts/node.sh create mode 100644 Days/Kubernetes/statefulset.yaml diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/action_provision b/Days/Kubernetes/.vagrant/machines/master/virtualbox/action_provision new file mode 100644 index 0000000..b24d7a6 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/action_provision @@ -0,0 +1 @@ +1.5:e4b0d545-5fd5-49c6-88be-44139c9ad3d8 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/action_set_name b/Days/Kubernetes/.vagrant/machines/master/virtualbox/action_set_name new file mode 100644 index 0000000..02b3ceb --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/action_set_name @@ -0,0 +1 @@ +1645452510 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/box_meta b/Days/Kubernetes/.vagrant/machines/master/virtualbox/box_meta new file mode 100644 index 0000000..564f372 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/box_meta @@ -0,0 +1 @@ +{"name":"bento/ubuntu-21.10","version":"202112.19.0","provider":"virtualbox","directory":"boxes/bento-VAGRANTSLASH-ubuntu-21.10/202112.19.0/virtualbox"} \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/creator_uid b/Days/Kubernetes/.vagrant/machines/master/virtualbox/creator_uid new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/creator_uid @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/id b/Days/Kubernetes/.vagrant/machines/master/virtualbox/id new file mode 100644 index 0000000..a1b72e6 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/id @@ -0,0 +1 @@ +e4b0d545-5fd5-49c6-88be-44139c9ad3d8 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/index_uuid b/Days/Kubernetes/.vagrant/machines/master/virtualbox/index_uuid new file mode 100644 index 0000000..86a8928 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/index_uuid @@ -0,0 +1 @@ +758da8fa9ae14606a03e2b90a86a0477 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/private_key b/Days/Kubernetes/.vagrant/machines/master/virtualbox/private_key new file mode 100644 index 0000000..dae963f --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/private_key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpQIBAAKCAQEAzzGQFcoNosHcBYK4bBTDE9IHd+KJow69IP/DBCv0oqoowywR +BB7RkHYlWIXboSjF1lbyqQF1c+3ejQn4SFYNk5lSZkFh2mq7gz1AU57xCQfT+nCL +7KdOEfeOuIP/FYJY+9aQM7j8ZU9dByngGTQOp2K+rqZY2+p0UkF096fezidNf7/X +0D+QBRP/WJSBpwmlRJmsbRUMxh8XV/su6TZmgtdb0kS7jTvFB8+8A4vjq2oTbZW5 +Qy6CK7gCAPezPAqOt8/5h6spQvBBM5BDWhjRwQaQqMIbbBxujKIjJPsADlt6QKEd +yu7oSVEkovnh6zWgD1GPuAAwTcJ6P86wAQ5hkwIDAQABAoIBAAgptbmGCl99L8Pv +0IBBmSXwwmaQwEdyTzU7nl1NtgeqmIyH8eutoygD35jLPUnuJ004g7rw2cXFe10n +JWcELOjBw6NPtCE8z0JuaVhiDLEEY++b+4dJWCQREshmOuiICCVz4J6JDTiYlduw +ZKnZiTJDC6wp1ZpkdEzBU3BmZrrMc3PbSZ0nQyTKMD9EvWFDkCSuf/Xac7crijN4 +wVLp08Yy/edsppXgzFCuPOSExzT0koB/vHxEc0nO71Dei20EFyO4HvhHYgG5ha0b +1eCl06x1F2gkgbdDKw6sCbqhWFu0Gwth3HVdI6J1+sr35bU+75ON+HfTtF8JrM9o +hRjZOTECgYEA7HJpwzZ90pRpMtirbai424W8WyZrVXSqZx4fznxK74VORqgza/xA +KtSV4r9NaIBJTzDK4hrRhVyrKJ0+xjq8GDQ/hry+dzfFpGELLVn0eYNtiSSh9KJV +a5/gQOXMLui5VjO9cbGJXpx6umhQ/rOMKdIbg/NzA2lgw7gFUv8o2/0CgYEA4FPb +MIRBBDoA9Gk09gzlXtb+K8NZpbUS/ajOzh2vguKwiIgBP3OyNrUOEU8u18yQEHml +Q9LOD2xG1qIASHaMHhfDvR0usx+jPGNTBICqwed2JIsTE/kVG7pIFyAkaFfBmIA1 +MAr1/xsg2ZPTDrqr9UxTlv3XhERaMV3Qc6z+gM8CgYEA4IFGYN/VmmPmeyv1odqp +I28ZSGbzVSHARsb4pmOn90NY7of4w1ixSLmvU6wXANmGQhXvHb8fIAS8U4TyvN+6 +BzVc+D8wjhw7oneuWDJoihQ7phNNX+3fM6CLGrPXKtc4W1wnTdOnvljPwz0XYq/y +rybbj29RznR5N3z8OTEjh7UCgYEA29tz3LYSHrlWjDS8clYrS2s8ytl3+D9isHcM +0NgpVwcj63wYdP7IcHO8qNxJVbkojO0cOz/VMyp0txEpY9vD8g5qieObDHV6f8n8 +6FHOiaJ3mNMxTIb32CgXVYrsA9PWasdk2YQ0muUUqgoGdc4gkJZQ6pA49GolV3LR +xT2MZeMCgYEAsmzZnGxdh2RFb7PtIi2Pg39VHYxiLb8osRcjm9YheuwIhNMlIEsR +apsl77YGh/qx/iQv1smqWUjz6O8Wi+75JmutZPHulBrfHF8iXInDOoh+xrVgU99p +dvzl7O2Tl4M09fCRxfxltoBr4QouO73AkH/U8F6yxB1bQnC/HhmXPhA= +-----END RSA PRIVATE KEY----- diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/synced_folders b/Days/Kubernetes/.vagrant/machines/master/virtualbox/synced_folders new file mode 100644 index 0000000..ea56fa8 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/synced_folders @@ -0,0 +1 @@ +{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/Users/micha/demo/vagrant-kubeadm-kubernetes","disabled":false,"__vagrantfile":true}}} \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/master/virtualbox/vagrant_cwd b/Days/Kubernetes/.vagrant/machines/master/virtualbox/vagrant_cwd new file mode 100644 index 0000000..cc860b7 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/master/virtualbox/vagrant_cwd @@ -0,0 +1 @@ +C:/Users/micha/demo/vagrant-kubeadm-kubernetes \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_provision b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_provision new file mode 100644 index 0000000..bef3da8 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_provision @@ -0,0 +1 @@ +1.5:1067c79e-62d1-45ee-91e8-720aef4f1298 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_set_name b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_set_name new file mode 100644 index 0000000..3de7942 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/action_set_name @@ -0,0 +1 @@ +1645453183 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/box_meta b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/box_meta new file mode 100644 index 0000000..564f372 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/box_meta @@ -0,0 +1 @@ +{"name":"bento/ubuntu-21.10","version":"202112.19.0","provider":"virtualbox","directory":"boxes/bento-VAGRANTSLASH-ubuntu-21.10/202112.19.0/virtualbox"} \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/creator_uid b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/creator_uid new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/creator_uid @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/id b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/id new file mode 100644 index 0000000..7b573a6 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/id @@ -0,0 +1 @@ +1067c79e-62d1-45ee-91e8-720aef4f1298 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/index_uuid b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/index_uuid new file mode 100644 index 0000000..f16757a --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/index_uuid @@ -0,0 +1 @@ +f98a4ae7e24c423a942d7935e71d2f36 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/private_key b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/private_key new file mode 100644 index 0000000..0d7adc9 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/private_key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEowIBAAKCAQEA16gqn6x0taCn9M/Z766wMD5+bcuIbP/eV750BuzE3nCIGcvV +rFbXF3LPsLIcJiq0l9MMFInJm5Ci+yuwgTTwEO9UeFtro58DeABciEimTRZPnVIl +zcKORIPjQBP4/ZCwNdwQsqUuNZiG5Z+1NslVBzJLO8ciSmnOi4+tsUZ9XRC3UWV1 +Sp9ThqHNS6RlEG7BoTNZWBH8VgyACEZOPSizGkNu9Tl6HIMSJOscjJe6t446NCoS +/c9NP/lOCS/vE3kTVAPQEX4TZqhxtIGX37G8KVxK7TU6Oo2KfU8rRUZgQ9mHTyUM +e2wJTP61frUYu+Zcmop+zb1YY0VsC+9JspmdUwIDAQABAoIBAFdhAfQ0cg1tjN/6 +n7kntKe3io5+G0be3X374xMzOAlQ2zRojKkJfpk3ocNcR1+HiijCEHD560Am+IKA +j0Gq62JRNo6VrCVdtpAWxWdK2Gb/lT6PHFYkcHR+Y8OA1DAZQexwwCtCFlkM9gtw +DIKoTNVfoXAVHWW9PTz6+EuN3hmof6/bx6UjVpztYQ5APeMX1HIfG95kq7Wz7Z0s +02a1PjBjupj0dCcOd+8cZ7KdPBFYEXbeiCVeKrCiwk/bGuLOoxbHVhPD+at6SX8F +1ZWACM7JVAJzc/vtFpiICQWfUyOS9BtjRVYmtYFfYfCXWsxedSNVavsmobE9yAIa +szooMhECgYEA9H5+9ug7nY6V1sUsmz2sehpTX06NqAsepRQudjqrnqmjnBVKhLKF +0RlA9O9/Hx2rgeM2zT0q4gEDfTtw6HiCgFvY38IOjDmLOv+mMNYoz31DgEths12h +zNe/IsBdOkblxVd2ZIssP3BT7g91NQsFyQLUOmB7bg14xMoKGxjjea0CgYEA4c5C +OGwd/c8hrJCssgRfcnKnJ4H2iEqMBxjvjys5X7zTUKQhqIFGeby0LF3JPR3J732g +Hvp7z8WRxjZVoEx5EnHeRHGo5VU4UGViowc+ec3+ClwIVaS0fo+63JlsQUgwA+0V +XIPUPWVOaH4uIxdOvH2Zeh7EMS0tr1ZidcxyUv8CgYAWIFiHKc8zXBMNY7y8s+En +D7jZ2DcTrSXx1Ji71GVxr3KCDp820R0xJjLtt7ruavX5hEGSY2W9HFBfhgCa2UUe +LrG61koQwKhsB3TX2JnK5VA1jRzjaabZ7fB7SaNmQcJLkLXDNaEkgJrn4Xg++6dj +YKEqQ08IT6nNTWeKuj7j5QKBgQDCHUEaJf+mWDD3myuKoW24Ak4mDXh087jqxQnz +xtG8tqPmWCLDK9b9AjbVSQ6dZoVZR2KmHuje1VYa0kzLz9HpBFByAE+UTq1pl66y +vaB8r5PrLfDQRxYPEtotmArTGA6G4YISlRWYbgV4mLhq3DeInGSa8eXw7IiwiY98 ++vNw2wKBgHCvnrpCCF+ycO+CxjtOEi3XkfauWEvwLgfuHHUBKUYOzfcr3P6mKZg5 +oZeMmbc8ZuzSs/34LNXKhZlsqgl0X22Yr3EfFTRzXYYKBj8Gj6g3kOVE9Ucw6KLN +9qwKZm66ew/m7+JAzmfIy+1ILaiVji73DdrslanKdcN0dfRzd4PI +-----END RSA PRIVATE KEY----- diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/synced_folders b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/synced_folders new file mode 100644 index 0000000..ea56fa8 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/synced_folders @@ -0,0 +1 @@ +{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/Users/micha/demo/vagrant-kubeadm-kubernetes","disabled":false,"__vagrantfile":true}}} \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node01/virtualbox/vagrant_cwd b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/vagrant_cwd new file mode 100644 index 0000000..cc860b7 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node01/virtualbox/vagrant_cwd @@ -0,0 +1 @@ +C:/Users/micha/demo/vagrant-kubeadm-kubernetes \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_provision b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_provision new file mode 100644 index 0000000..902131d --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_provision @@ -0,0 +1 @@ +1.5:32937b8e-60c8-425f-b356-238ff3983f9f \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_set_name b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_set_name new file mode 100644 index 0000000..0d212b5 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/action_set_name @@ -0,0 +1 @@ +1645453327 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/box_meta b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/box_meta new file mode 100644 index 0000000..564f372 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/box_meta @@ -0,0 +1 @@ +{"name":"bento/ubuntu-21.10","version":"202112.19.0","provider":"virtualbox","directory":"boxes/bento-VAGRANTSLASH-ubuntu-21.10/202112.19.0/virtualbox"} \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/creator_uid b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/creator_uid new file mode 100644 index 0000000..c227083 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/creator_uid @@ -0,0 +1 @@ +0 \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/id b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/id new file mode 100644 index 0000000..838d704 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/id @@ -0,0 +1 @@ +32937b8e-60c8-425f-b356-238ff3983f9f \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/index_uuid b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/index_uuid new file mode 100644 index 0000000..a3b4eb7 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/index_uuid @@ -0,0 +1 @@ +60a1767f8086405f9b2e5f975062825b \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/private_key b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/private_key new file mode 100644 index 0000000..3221d72 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/private_key @@ -0,0 +1,27 @@ +-----BEGIN RSA PRIVATE KEY----- +MIIEpAIBAAKCAQEA4MLDC6hMHCqGGXmEy9qqoQpOgbQ3S4vdd8kZoz4Q0ktTKuIO +qU8pFRzPHhrTzbwLQFBoK4/gvUOaTEkYgCjNOg8omcaJ4PlJ+ELbTZ7xz0H8sZA8 +MWOsrNwuWCgIRsgvvJJTGU0/gB2S+8LEdKHOUajVwUsai9kJDHSfa+kKpPIhDviq +WHFQGlRPZqkE8VExOYvJYhn3CABvxVkCgFflfIe8dN3o1vg0ITHJ8kjefhB9FQFW +ioaXGFl8EIyyANogYVfHPxpclKxciEn7tqXVP00aF90DTIxgHNt9IlOcO7lxyMUR +3hroyfKZvP4S5POvj53TLHbSri4jra+GkmQiDQIDAQABAoIBAA6yDUis11UcHqp5 +vIoLoQ5oexuV6euhmHhliKyYuUbWr/hk0WqWh2we9xfTzzdrbRzmZPk8LgiR6/vC +57wxbsG2DgSH66nvArwduvMHSm4vtVLyyEy+ZKLkvo77BxeBrUVaF97WoylARcT6 +RhgOIExMirVZsMGmDiZnVakbkpuYLc8ySpceFXd5VWkDImnc3tLvu9vemiHzhZJr +AsOcCoye+LK5iWn+c2A5th2cKgU1T16K6NbuR+cYMWk9uBZGZgO2SoBCOndy23H8 +PV2ALe5R4hOalDuzjchG57Fn9yZXV4z0TgxvjWwh6u4BZ65pBiLyZIeo+FESa7bN +XW+WjgECgYEA/mNR4ALcJpMNOje+YNhK4jRkUNSuj2H0QYIhhrCm5few4WFWdReK +abq/irLlyxDO0bejArftPqnJe0ROoDz32TFAw0L4MPaBsciPoX6zAHjQicSCK7e0 +wdOHG5yBrPXY1QWrziglWsGdiN7OoDcG9D5ZbjBay3ifPraQ9vtG040CgYEA4i9h +JHZmtO+Z9B/jckWiy4lkeyUj1RC1wrpt9Wlc3r1x3tu2/9+yxaPbb0MTCr3j5c1u +IvZRe/TrYVEp20eWvsmNWrMGG4GmV4kzfaltozfj9KpNSkWTXNFiPkFvNJ3ZkbEf +5VT1vhXBE/qps5JXR/R0R7UaxmKezIRZCQ0bqIECgYEAnE7QxzFaroUa0pPf8cfV +M2r33MbiP43ztLDOAuHWm2V3lPTnV+lQDilGemX0VrMMMcaBbjEvoJpZB9nv6fus +WxMtdQ1YTVWaWXAf+R5NxNN3Z7+MMGqfsZ1U3j1rXKhvRG1IpNL8KOjg8HHfSoil +SDxrXQ5vK6kBSFqLdobtfR0CgYAnTm6GRKEynlTVzNjc2echkd3JXLnuY/oCPh2v +wUCnYKqyPOJ/cuOBXylaG4Dqo/c/z0RthPrCHNzuy4kHl1hGDYaoFWZhT1WV7rzp +AJGSBLtzoEjQOGkUfzqgcQSfUzMlE2/kjbAq+WLVUwE8uJi8Y2n1sC5X/Xl1Nya1 +4PZGgQKBgQCyHBVmBR+nDH0NUfWde0elHn0oLnfCLteCjS3Rq8WitPJiy59w/jJ1 +EUf3+rI1wLzBymIlJ+QTY6xcpSImPm5toOa9j35yFP+1DlikGF2kD1rs/2IwnD0W +KYBpHBkWU0ZyGBN23LmFj9HEKmgU12dJVSm7cbb2d83T46YNkUVXWg== +-----END RSA PRIVATE KEY----- diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/synced_folders b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/synced_folders new file mode 100644 index 0000000..ea56fa8 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/synced_folders @@ -0,0 +1 @@ +{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/Users/micha/demo/vagrant-kubeadm-kubernetes","disabled":false,"__vagrantfile":true}}} \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/machines/node02/virtualbox/vagrant_cwd b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/vagrant_cwd new file mode 100644 index 0000000..cc860b7 --- /dev/null +++ b/Days/Kubernetes/.vagrant/machines/node02/virtualbox/vagrant_cwd @@ -0,0 +1 @@ +C:/Users/micha/demo/vagrant-kubeadm-kubernetes \ No newline at end of file diff --git a/Days/Kubernetes/.vagrant/rgloader/loader.rb b/Days/Kubernetes/.vagrant/rgloader/loader.rb new file mode 100644 index 0000000..c3c05b0 --- /dev/null +++ b/Days/Kubernetes/.vagrant/rgloader/loader.rb @@ -0,0 +1,9 @@ +# This file loads the proper rgloader/loader.rb file that comes packaged +# with Vagrant so that encoded files can properly run with Vagrant. + +if ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"] + require File.expand_path( + "rgloader/loader", ENV["VAGRANT_INSTALLER_EMBEDDED_DIR"]) +else + raise "Encoded files can't be read outside of the Vagrant installer." +end diff --git a/Days/Kubernetes/Rancher/.gitignore b/Days/Kubernetes/Rancher/.gitignore new file mode 100644 index 0000000..582c81c --- /dev/null +++ b/Days/Kubernetes/Rancher/.gitignore @@ -0,0 +1,33 @@ +# General +.vagrant/ +configs/ + +# Log files (if you are creating logs in debug mode, uncomment this) +# *.log + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk \ No newline at end of file diff --git a/Days/Kubernetes/Rancher/Vagrantfile b/Days/Kubernetes/Rancher/Vagrantfile new file mode 100644 index 0000000..37111fa --- /dev/null +++ b/Days/Kubernetes/Rancher/Vagrantfile @@ -0,0 +1,40 @@ +NUM_WORKER_NODES=2 +IP_NW="192.168.169." +IP_START=130 + +Vagrant.configure("2") do |config| + config.vm.provision "shell", inline: <<-SHELL + apt-get update -y + echo "$IP_NW$((IP_START)) master-node" >> /etc/hosts + echo "$IP_NW$((IP_START+1)) worker-node01" >> /etc/hosts + echo "$IP_NW$((IP_START+2)) worker-node02" >> /etc/hosts + SHELL + config.vm.box = "bento/ubuntu-21.10" + config.vm.box_check_update = true + + config.vm.define "master" do |master| + master.vm.hostname = "master-node" + master.vm.network :public_network, bridge: "Intel(R) Ethernet Connection (7) I219-V", ip: IP_NW + "#{IP_START}" + master.vm.provider "virtualbox" do |vb| + vb.memory = 4048 + vb.cpus = 2 + vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + end + master.vm.provision "shell", path: "scripts/common.sh" + + end + + (1..NUM_WORKER_NODES).each do |i| + config.vm.define "node0#{i}" do |node| + node.vm.hostname = "worker-node0#{i}" + node.vm.network :public_network, bridge: "Intel(R) Ethernet Connection (7) I219-V", ip: IP_NW + "#{IP_START}" + node.vm.provider "virtualbox" do |vb| + vb.memory = 4048 + vb.cpus = 1 + vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + end + node.vm.provision "shell", path: "scripts/common.sh" + + end + end + end \ No newline at end of file diff --git a/Days/Kubernetes/Rancher/scripts/common.sh b/Days/Kubernetes/Rancher/scripts/common.sh new file mode 100644 index 0000000..f1c1fdd --- /dev/null +++ b/Days/Kubernetes/Rancher/scripts/common.sh @@ -0,0 +1,91 @@ +#! /bin/bash + +# Variable Declaration +KUBERNETES_VERSION="1.23.3-00" + +# disable swap +sudo swapoff -a +# keeps the swaf off during reboot +sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab + +#Letting iptables see bridged traffic +lsmod | grep br_netfilter +sudo modprobe br_netfilter + +cat < /dev/null + +#Install Docker Engine +sudo apt-get update -y +sudo apt-get install -y docker-ce docker-ce-cli containerd.io + +#Configure containerd +sudo mkdir -p /etc/containerd +containerd config default | sudo tee /etc/containerd/config.toml + +#restart containerd +sudo systemctl restart containerd + +echo "ContainerD Runtime Configured Successfully" + +#Installing kubeadm, kubelet and kubectl +sudo apt-get update -y +sudo apt-get install -y apt-transport-https ca-certificates curl + +#Google Cloud public signing key +sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg + +#Add Kubernetes apt repository +echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list + +#Update apt package index, install kubelet, kubeadm and kubectl, and pin their version: +sudo apt-get update -y + +sudo apt-get install -y kubelet kubectl kubeadm + +sudo apt-mark hold kubelet kubeadm kubectl + diff --git a/Days/Kubernetes/Rancher/scripts/master.sh b/Days/Kubernetes/Rancher/scripts/master.sh new file mode 100644 index 0000000..fbdf4fb --- /dev/null +++ b/Days/Kubernetes/Rancher/scripts/master.sh @@ -0,0 +1,83 @@ +#! /bin/bash + +MASTER_IP="10.0.0.10" +NODENAME=$(hostname -s) +POD_CIDR="192.168.0.0/16" + +sudo kubeadm config images pull + +echo "Preflight Check Passed: Downloaded All Required Images" + + +sudo kubeadm init --apiserver-advertise-address=$MASTER_IP --apiserver-cert-extra-sans=$MASTER_IP --pod-network-cidr=$POD_CIDR --node-name $NODENAME --ignore-preflight-errors Swap + +mkdir -p $HOME/.kube +sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config +sudo chown $(id -u):$(id -g) $HOME/.kube/config + +# Save Configs to shared /Vagrant location +# For Vagrant re-runs, check if there is existing configs in the location and delete it for saving new configuration. +config_path="/vagrant/configs" + +if [ -d $config_path ]; then + rm -f $config_path/* +else + mkdir -p /vagrant/configs +fi + +cp -i /etc/kubernetes/admin.conf /vagrant/configs/config +touch /vagrant/configs/join.sh +chmod +x /vagrant/configs/join.sh + +# Generete kubeadm join command +kubeadm token create --print-join-command > /vagrant/configs/join.sh + +# Install Calico Network Plugin +curl https://docs.projectcalico.org/manifests/calico.yaml -O + +kubectl apply -f calico.yaml + +# Install Metrics Server +kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml +kubectl patch deployment metrics-server -n kube-system --type 'json' -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--kubelet-insecure-tls"}]' + +# Install Kubernetes Dashboard +kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml + +# Create Dashboard User +cat <> /vagrant/configs/token + +sudo -i -u vagrant bash << EOF +mkdir -p /home/vagrant/.kube +sudo cp -i /vagrant/configs/config /home/vagrant/.kube/ +sudo chown 1000:1000 /home/vagrant/.kube/config +EOF + +sudo systemctl restart systemd-resolved +sudo swapoff -a && sudo systemctl daemon-reload && sudo systemctl restart kubelet + + + diff --git a/Days/Kubernetes/Rancher/scripts/node.sh b/Days/Kubernetes/Rancher/scripts/node.sh new file mode 100644 index 0000000..ad16ffc --- /dev/null +++ b/Days/Kubernetes/Rancher/scripts/node.sh @@ -0,0 +1,14 @@ +#! /bin/bash + +/bin/bash /vagrant/configs/join.sh -v + +sudo -i -u vagrant bash << EOF +mkdir -p /home/vagrant/.kube +sudo cp -i /vagrant/configs/config /home/vagrant/.kube/ +sudo chown 1000:1000 /home/vagrant/.kube/config +NODENAME=$(hostname -s) +kubectl label node $(hostname -s) node-role.kubernetes.io/worker=worker-new +EOF + +sudo systemctl restart systemd-resolved +sudo swapoff -a && sudo systemctl daemon-reload && sudo systemctl restart kubelet \ No newline at end of file diff --git a/Days/Kubernetes/Vagrantfile b/Days/Kubernetes/Vagrantfile new file mode 100644 index 0000000..5141a15 --- /dev/null +++ b/Days/Kubernetes/Vagrantfile @@ -0,0 +1,40 @@ +NUM_WORKER_NODES=2 +IP_NW="10.0.0." +IP_START=10 + +Vagrant.configure("2") do |config| + config.vm.provision "shell", inline: <<-SHELL + apt-get update -y + echo "$IP_NW$((IP_START)) master-node" >> /etc/hosts + echo "$IP_NW$((IP_START+1)) worker-node01" >> /etc/hosts + echo "$IP_NW$((IP_START+2)) worker-node02" >> /etc/hosts + SHELL + config.vm.box = "bento/ubuntu-21.10" + config.vm.box_check_update = true + + config.vm.define "master" do |master| + master.vm.hostname = "master-node" + master.vm.network "private_network", ip: IP_NW + "#{IP_START}" + master.vm.provider "virtualbox" do |vb| + vb.memory = 4048 + vb.cpus = 2 + vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + end + master.vm.provision "shell", path: "scripts/common.sh" + master.vm.provision "shell", path: "scripts/master.sh" + end + + (1..NUM_WORKER_NODES).each do |i| + config.vm.define "node0#{i}" do |node| + node.vm.hostname = "worker-node0#{i}" + node.vm.network "private_network", ip: IP_NW + "#{IP_START + i}" + node.vm.provider "virtualbox" do |vb| + vb.memory = 2048 + vb.cpus = 1 + vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] + end + node.vm.provision "shell", path: "scripts/common.sh" + node.vm.provision "shell", path: "scripts/node.sh" + end + end + end \ No newline at end of file diff --git a/Days/Kubernetes/configs/config b/Days/Kubernetes/configs/config new file mode 100644 index 0000000..784e7dd --- /dev/null +++ b/Days/Kubernetes/configs/config @@ -0,0 +1,19 @@ +apiVersion: v1 +clusters: +- cluster: + certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUMvakNDQWVhZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeU1ESXlNVEUwTVRrd04xb1hEVE15TURJeE9URTBNVGt3TjFvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBT3dHCm1pY3ZCMXVueDdoSnRBUlBTM0xTdmpTRmdhbi9wQStDbnZCZ0Q0SVFpaE9GZDZ6cXhYZzdhcTFEMk1XTUtTazMKa0gxbUtwa3Y0ZElsdEtFeWk2bm9hZUpkOUxVNmJOVUtjdkpnZ1NuSUZEWGx3MUM2bzNiRjF3bFZYUUtzWW1IUQpxRmh6UXJzWFdrL1ZsSm41bzlGdVpWaGs1aTlXVC92N0ZkM0pRZkNmUzA2Wld3L1BwMDhER09VUERITHdmMEk5CmE5alVRbW9BRG1LRVE0eDF3YTFGWU1KOVl5QTNsQWs2eUdHdktiM1piK25pMFpFYUtrVGxWN0l1OWdnc1crQkoKT2haUlg1M3dJSHBXbDBXRjV1ejRGejNPTHE3cllkdmFyYmFKQnF5YVF3TlRRbERiTVkwWDhqNUM4U2ptRVR1dQpxejFyK1VHTUhDV2pGRVg1SW1rQ0F3RUFBYU5aTUZjd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZLQWJiWnVsY2UralJDYitHSlVWekw5U1hGSXlNQlVHQTFVZEVRUU8KTUF5Q0NtdDFZbVZ5Ym1WMFpYTXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBTFFqY1IvT3VhY095WHBnQStLbgorbis0dkQyMkE3UVhJTlFlaWJ1NzNId1A0NXVNTmFKUnoyOTNvcnNpZXNMRi9QTWRzQWRVcEloTGtUWEhQOVVPCkdQYlFVSDQ4VnBMV2tlM2lsSGtHSGY4ZzMrSlkxWkdtaC9IVFcwekU0SFpJamRSK1NtK3FtakFNeCtJSlR4am0KdHYxWUczYVFvMFFIZnlRQ29jWC9KRGpGL0NZSURZTkE3K1R3QjI4WjlGRGF0VHFHd1pHcUNEWmo2Q0hJRm5heQp6eWZ0RVFhNHNJQXlFd3hMa1pGejBzRFJKTldJcVlwSmprMktGWVF1ZTRMRTRXTzA3NExsbHVtajJSU3dUWlMyCnlxdjdRTmJPSVk0QUl6RnVrdy9WbGlDckEwUFFQVGkyRnZFeUVKd3ROdHpUeGVkOVdyOU1jeXIxczQxSEJaL3IKRUQ4PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + server: https://10.0.0.10:6443 + name: kubernetes +contexts: +- context: + cluster: kubernetes + user: kubernetes-admin + name: kubernetes-admin@kubernetes +current-context: kubernetes-admin@kubernetes +kind: Config +preferences: {} +users: +- name: kubernetes-admin + user: + client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURJVENDQWdtZ0F3SUJBZ0lJSDdlYlA3dC9hMFl3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TWpBeU1qRXhOREU1TURkYUZ3MHlNekF5TWpFeE5ERTVNRGxhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTRkeklGK0U5eVpyWlRNMXAKMlY2c1p6amo3VGNFTktQYUgvV283eGt6eS9HQ0pIZUJxdVlwWjlpL2p4dHROckN6WWs5U004WmM0dmgrYnFLOApVb1dhQUt6ZmVUMWx6T0VBaitpRnpjYVhxZlBWdksyVkpwTkFFS0xOZC9STEFxWHRaRUNTdzE5TS8yUHFCZlM2CmxWZTRtanJubmRGUHZ1bWtSemM3SUx0Z0VvU2FRQXQ4MUYwTGZ6MTFVQjl5UG9FS0pqVUxMVmw3RG1kTUlwRlQKZ0ZvRFpXZnJFdHpnL3FWajV3bStVN3FCOHhVWHI5Y0l0Ung2b01LMWJqcFR6dG9jZlBSVFg0em9RZ254QUJjawp0Um5mdmtyYVY3a3ZaZTI3TnJhZG8zbTVwMHZVQlIrY0pNNUd2b1NqTTNlOENPMHhhc3JoQU9QbzcxZXZicGxICmxIREJxd0lEQVFBQm8xWXdWREFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0RBWURWUjBUQVFIL0JBSXdBREFmQmdOVkhTTUVHREFXZ0JTZ0cyMmJwWEh2bzBRbS9oaVZGY3kvVWx4UwpNakFOQmdrcWhraUc5dzBCQVFzRkFBT0NBUUVBbGlzY1Fhckk4S2JxWFkzRms2Y0JEdzNpTmJ6M1lNL3I5TStJCld2bytIUTJRN2FkWWROdXBOU0l0eXZxdW56MzRlelk4TTNWcjZ1dnhoVWliOW84bHRjclQ4SStoNVZDQnI5VEkKYk9FS0xMSGd4dXZWKzZSK3RiL3NPYlZ0RVZwT3lFdWpDbjhwRU9HZ0ZLbTRnQ2lUbEN3dlVtcW45c2wvYmVXVApMSWdsSzFtREk0NElEbHd5bmlWVFFOenNZS1VkajdZN1hQZVhHb3NoTEJUODZGd2dOZjY0WlBvZDFRS1R3WEJGCkFuaHk2WXVPVTV3bGJxazdtNWRLeXVSeXJKREZKN3pDTldXOHRjWDBKTk10d2dpeGsxMWFMa2RQTHU1S1NCd1oKa3lLdzdmK3pqVHg4ejcxTlU1TStBTDJjd1U0WnJaSFVUYVpTamw0cW1JeXNSWmN3ekE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== + client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcFFJQkFBS0NBUUVBNGR6SUYrRTl5WnJaVE0xcDJWNnNaempqN1RjRU5LUGFIL1dvN3hrenkvR0NKSGVCCnF1WXBaOWkvanh0dE5yQ3pZazlTTThaYzR2aCticUs4VW9XYUFLemZlVDFsek9FQWoraUZ6Y2FYcWZQVnZLMlYKSnBOQUVLTE5kL1JMQXFYdFpFQ1N3MTlNLzJQcUJmUzZsVmU0bWpybm5kRlB2dW1rUnpjN0lMdGdFb1NhUUF0OAoxRjBMZnoxMVVCOXlQb0VLSmpVTExWbDdEbWRNSXBGVGdGb0RaV2ZyRXR6Zy9xVmo1d20rVTdxQjh4VVhyOWNJCnRSeDZvTUsxYmpwVHp0b2NmUFJUWDR6b1FnbnhBQmNrdFJuZnZrcmFWN2t2WmUyN05yYWRvM201cDB2VUJSK2MKSk01R3ZvU2pNM2U4Q08weGFzcmhBT1BvNzFldmJwbEhsSERCcXdJREFRQUJBb0lCQVFDMnlXU3QzcjJRWU44bgpScjQ1Q21OZ0RpeDNsNlN4clVFanlEMzFjbUgyMVBiTDZHTnFHV2E5QWk3VTlBOUl5V3dEVGNwcTJFZm43ODd5ClhvVW1DN1Y4Z210QXhTMlR4eXdiU3NTdXFkK256UXZXN0d2ZWtpQ3cxZkNPK1llVEZ4R3Rwb3lmeklxVnpSaGgKeFpNU3RiRlNNQVd1Tk96aXhsY0t3Mm40cld1c3oxbmhYOHd6T0tvdjZjSlRqOWhPTWpnWkpJektPSitCRzk2QQp5UWZBa3VjK2FJWDREUld5ZkZWN1ZNOGM1YldCTFJ5ZkJaYVdscTFUMlJNVHdSNTZVMG5qSVpFRG5NTXZhR1dCCnFod1lFalA3ZmswN1FEVDZoTWUvYjIxWnZTRW5keUhSai93a29yQk53dmZ5L1B3L2lic250Q1ZTQmNnbDJaUGwKb3BtVjFoblJBb0dCQVA3WEJIY0c1OTZ2TTYvS2pHM3EwdDBGVndYKzB6NXpieCtPOEN5RVRZQzZDcERxNmJ0NwpOV1JVRmNzM25BVzZNTXhnTW5oSXBGS0ZUcktEUng1ZU1mT3FFMkIvbWtNdEN3d1g3bEhSSVB1SU1KWG5ZVHgyClpRWGJ6ejVYYVlSSlcyQ2kxeFVxL2xBYXE2eVZ6cFFwdWlCT2VibmZTUDBVaVJwMHZZOVpjTEgvQW9HQkFPTGoKL3FWQTRVSU1Kb2N1MjBFZFQwQ2ZMZnJxbUlnSGNzWmZWRTdrMUVLMzlESDhPV1ZkQzZrVXA4V25NNzErb0JmdgpUT0k1NnZKQittbDQydG9hREJUVVZGRUU3bW1zZjhEMUJReWJqMnJqWHdHUDFmbEdSWC94Qk42U2d3MGpYRmRZCjBIQ091UGxadU4zemxPZ1BYRlQvRnZkdXgzc1lMMWx5YXZzUEtsaFZBb0dCQUlWdzk5Q1AyQ2g5MjNYSWZRSXQKZlI3bzVlbW94dHFqdldOc0NJMTI5ZEpiR0o5THN2cE9DT1l4Tlh4RThUajZod1R0dGwvUHdlUElGQzVibVlqbwpVQVhFWUFNZXJodFE0Y0VDWXZPS3ExZXF0NjQzQzI2S25GbVdBUTRtM1lTOG1OR2dVem10V3A5OVo3bW1kQmFYClJ2UVZ3NTIxc3RWNnhGUUxIeHVKL1AzbkFvR0FPU3YrUktIZW9RZnl4V21YTWdjeXF6UHhJQ0x4SUlYUDlCQ2QKYSt2WldKNkYxL3FZYytSSVJlakFoZHVsKy8vbVUyR25XL0lBTTk5UVBEZUozaDltSC9HSTlZbHFraEkzZHVYRwp5ZkNBNlF3MktteVdIR1FLcXp5T1g0OUhtbzNvZk5JU1krcHl6ZEkvOVIybHpmdmc1a0lKQlh4U283L3FYbjJvClcyN3MycWtDZ1lFQTlXbHZaUUxIZ1RRcnRkU1daZktHY2ZZNHhqd2hYdGxRaWIwYXNEdFZXL2VjbURBQkhueWcKRERUVHlUWXdPVWFqYUZXdUNoTzRTNk9SYng5dmswRWxwZmNML2VaVUNCZnpXeUxmWGZEdkxjWWx5cEk5RUorSwp5SDNmb0s0V0Q1ajd0c0drUzZsWWdTZVdSRUtvcTZPaWE3cEtoQ0p2ZXNrUFFJUW1NWGgyMDA4PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo= diff --git a/Days/Kubernetes/configs/join.sh b/Days/Kubernetes/configs/join.sh new file mode 100644 index 0000000..25ef534 --- /dev/null +++ b/Days/Kubernetes/configs/join.sh @@ -0,0 +1 @@ +kubeadm join 10.0.0.10:6443 --token 0s6dei.3nv1q4xkkv8g98qc --discovery-token-ca-cert-hash sha256:5a7d70a8498795c680b2fe3d7840585ac74b0451769f4781bc4298de4c9b23f8 diff --git a/Days/Kubernetes/configs/token b/Days/Kubernetes/configs/token new file mode 100644 index 0000000..c92cc1c --- /dev/null +++ b/Days/Kubernetes/configs/token @@ -0,0 +1 @@ +eyJhbGciOiJSUzI1NiIsImtpZCI6IlM1WGxrRnVIclJRaEVDbmg3cndZZFVTRTFpT0lfQzZsZ2NXbHZoOS1pbVUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWo1a3B2Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiZTZjZmUwZS0yYzFhLTRkNTYtYmVkMC1jYWRmYjYxNzA1N2YiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.LaBPEh6Qantd8tAc0X5DY9dDwUqZpxu38FHnp9TSJw-ghs3TsjrscFulUeEAtp2ng3ElLcU4SbNKPGJflF2dyW9Tmfn-Kt_6Jwq8HQ9GOCwAicEz0JVireHA7EWhATzuT56eO6MTe-2j5bpGnPQRJJtQ8AbtAN3nVK7RPjSzmc8Ppqx1z5i4oCGwiyRlGwqT-FkCtQLbQaQ4XmrASQoN4pJ_OBy5slztUhk32HdGP6pQx5c-nfei-of_4ij_fHrP0xEEfmVVvXqi9WKv1PLkQ3qTiSFDzv8M2sE4T6XmCGBbw7gyHzEGSpOAPZr00bX_YMCUvEF0lyP4YK696xWCBA \ No newline at end of file diff --git a/Days/Kubernetes/nginx-stateless-demo.yaml b/Days/Kubernetes/nginx-stateless-demo.yaml new file mode 100644 index 0000000..2c1426c --- /dev/null +++ b/Days/Kubernetes/nginx-stateless-demo.yaml @@ -0,0 +1,41 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: nginx + "labels": { + "name": "nginx" + } +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-deployment + namespace: nginx +spec: + selector: + matchLabels: + app: nginx + replicas: 1 + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx + ports: + - containerPort: 80 +--- +apiVersion: v1 +kind: Service +metadata: + name: nginx-service + namespace: nginx +spec: + selector: + app: nginx-deployment + ports: + - protocol: TCP + port: 80 + targetPort: 80 \ No newline at end of file diff --git a/Days/Kubernetes/pacman-ingress.yaml b/Days/Kubernetes/pacman-ingress.yaml new file mode 100644 index 0000000..5d08779 --- /dev/null +++ b/Days/Kubernetes/pacman-ingress.yaml @@ -0,0 +1,17 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: pacman-ingress + namespace: pacman +spec: + rules: + - host: pacman.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: pacman + port: + number: 80 \ No newline at end of file diff --git a/Days/Kubernetes/pacman-stateful-demo.yaml b/Days/Kubernetes/pacman-stateful-demo.yaml new file mode 100644 index 0000000..143e53d --- /dev/null +++ b/Days/Kubernetes/pacman-stateful-demo.yaml @@ -0,0 +1,281 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: pacman + "labels": { + "name": "pacman" + } +--- +apiVersion: policy/v1beta1 +kind: PodSecurityPolicy +metadata: + name: pacman + namespace: pacman +spec: + privileged: true + seLinux: + rule: RunAsAny + supplementalGroups: + rule: RunAsAny + runAsUser: + rule: RunAsAny + fsGroup: + rule: RunAsAny + volumes: + - '*' +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: pacman-clusterrole +rules: +- apiGroups: + - policy + resources: + - podsecuritypolicies + verbs: + - use + resourceNames: + - pacman +- apiGroups: [""] + resources: ["pods", "nodes"] + verbs: ["get", "watch", "list"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: pacman-clusterrole + namespace: pacman +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: pacman-clusterrole +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: Group + name: system:serviceaccounts +- kind: ServiceAccount + name: default + namespace: pacman +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: pacman-clusterrole + namespace: pacman +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: pacman-clusterrole +subjects: +- apiGroup: rbac.authorization.k8s.io + kind: Group + name: system:serviceaccounts +- kind: ServiceAccount + name: default + namespace: pacman +--- +apiVersion: v1 +kind: Secret +metadata: + name: mongodb-users-secret + namespace: pacman +type: Opaque +data: + database-admin-name: Y2x5ZGU= + database-admin-password: Y2x5ZGU= + database-name: cGFjbWFu + database-password: cGlua3k= + database-user: Ymxpbmt5 +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: mongo-storage + namespace: pacman +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + name: mongo + name: mongo + namespace: pacman + annotations: + source: "https://github.com/saintdle/pacman-tanzu" +spec: + replicas: 1 + serviceName: mongo + selector: + matchLabels: + name: mongo + template: + metadata: + labels: + name: mongo + spec: + initContainers: + - args: + - | + mkdir -p /bitnami/mongodb + chown -R "1001:1001" "/bitnami/mongodb" + command: + - /bin/bash + - -ec + image: docker.io/bitnami/bitnami-shell:10-debian-10-r158 + imagePullPolicy: Always + name: volume-permissions + resources: {} + securityContext: + runAsUser: 0 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /bitnami/mongodb + name: mongo-db + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 1001 + serviceAccountName: default + terminationGracePeriodSeconds: 30 + volumes: + - name: mongo-db + persistentVolumeClaim: + claimName: mongo-storage + containers: + - image: bitnami/mongodb:4.4.8 + name: mongo + env: + - name: MONGODB_ROOT_PASSWORD + valueFrom: + secretKeyRef: + key: database-admin-password + name: mongodb-users-secret + - name: MONGODB_DATABASE + valueFrom: + secretKeyRef: + key: database-name + name: mongodb-users-secret + - name: MONGODB_PASSWORD + valueFrom: + secretKeyRef: + key: database-password + name: mongodb-users-secret + - name: MONGODB_USERNAME + valueFrom: + secretKeyRef: + key: database-user + name: mongodb-users-secret + readinessProbe: + exec: + command: + - /bin/sh + - -i + - -c + - mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USERNAME -p $MONGODB_PASSWORD + --eval="quit()" + ports: + - name: mongo + containerPort: 27017 + volumeMounts: + - name: mongo-db + mountPath: /bitnami/mongodb/ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + name: pacman + name: pacman + namespace: pacman + annotations: + source: "https://github.com/saintdle/pacman-tanzu" +spec: + replicas: 1 + selector: + matchLabels: + name: pacman + template: + metadata: + labels: + name: pacman + spec: + containers: + - image: quay.io/ifont/pacman-nodejs-app:latest + name: pacman + ports: + - containerPort: 8080 + name: http-server + protocol: TCP + livenessProbe: + httpGet: + path: / + port: 8080 + readinessProbe: + httpGet: + path: / + port: 8080 + env: + - name: MONGO_SERVICE_HOST + value: mongo + - name: MONGO_AUTH_USER + valueFrom: + secretKeyRef: + key: database-user + name: mongodb-users-secret + - name: MONGO_AUTH_PWD + valueFrom: + secretKeyRef: + key: database-password + name: mongodb-users-secret + - name: MONGO_DATABASE + value: pacman + - name: MY_MONGO_PORT + value: "27017" + - name: MONGO_USE_SSL + value: "false" + - name: MONGO_VALIDATE_SSL + value: "false" + - name: MY_NODE_NAME + valueFrom: + fieldRef: + apiVersion: v1 + fieldPath: spec.nodeName +--- +apiVersion: v1 +kind: Service +metadata: + labels: + name: mongo + name: mongo + namespace: pacman +spec: + type: ClusterIP + ports: + - port: 27017 + targetPort: 27017 + selector: + name: mongo +--- +apiVersion: v1 +kind: Service +metadata: + name: pacman + namespace: pacman + labels: + name: pacman +spec: + type: LoadBalancer + ports: + - port: 80 + targetPort: 8080 + protocol: TCP + selector: + name: pacman \ No newline at end of file diff --git a/Days/Kubernetes/scripts/common.sh b/Days/Kubernetes/scripts/common.sh new file mode 100644 index 0000000..f1c1fdd --- /dev/null +++ b/Days/Kubernetes/scripts/common.sh @@ -0,0 +1,91 @@ +#! /bin/bash + +# Variable Declaration +KUBERNETES_VERSION="1.23.3-00" + +# disable swap +sudo swapoff -a +# keeps the swaf off during reboot +sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab + +#Letting iptables see bridged traffic +lsmod | grep br_netfilter +sudo modprobe br_netfilter + +cat < /dev/null + +#Install Docker Engine +sudo apt-get update -y +sudo apt-get install -y docker-ce docker-ce-cli containerd.io + +#Configure containerd +sudo mkdir -p /etc/containerd +containerd config default | sudo tee /etc/containerd/config.toml + +#restart containerd +sudo systemctl restart containerd + +echo "ContainerD Runtime Configured Successfully" + +#Installing kubeadm, kubelet and kubectl +sudo apt-get update -y +sudo apt-get install -y apt-transport-https ca-certificates curl + +#Google Cloud public signing key +sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg + +#Add Kubernetes apt repository +echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list + +#Update apt package index, install kubelet, kubeadm and kubectl, and pin their version: +sudo apt-get update -y + +sudo apt-get install -y kubelet kubectl kubeadm + +sudo apt-mark hold kubelet kubeadm kubectl + diff --git a/Days/Kubernetes/scripts/master.sh b/Days/Kubernetes/scripts/master.sh new file mode 100644 index 0000000..fbdf4fb --- /dev/null +++ b/Days/Kubernetes/scripts/master.sh @@ -0,0 +1,83 @@ +#! /bin/bash + +MASTER_IP="10.0.0.10" +NODENAME=$(hostname -s) +POD_CIDR="192.168.0.0/16" + +sudo kubeadm config images pull + +echo "Preflight Check Passed: Downloaded All Required Images" + + +sudo kubeadm init --apiserver-advertise-address=$MASTER_IP --apiserver-cert-extra-sans=$MASTER_IP --pod-network-cidr=$POD_CIDR --node-name $NODENAME --ignore-preflight-errors Swap + +mkdir -p $HOME/.kube +sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config +sudo chown $(id -u):$(id -g) $HOME/.kube/config + +# Save Configs to shared /Vagrant location +# For Vagrant re-runs, check if there is existing configs in the location and delete it for saving new configuration. +config_path="/vagrant/configs" + +if [ -d $config_path ]; then + rm -f $config_path/* +else + mkdir -p /vagrant/configs +fi + +cp -i /etc/kubernetes/admin.conf /vagrant/configs/config +touch /vagrant/configs/join.sh +chmod +x /vagrant/configs/join.sh + +# Generete kubeadm join command +kubeadm token create --print-join-command > /vagrant/configs/join.sh + +# Install Calico Network Plugin +curl https://docs.projectcalico.org/manifests/calico.yaml -O + +kubectl apply -f calico.yaml + +# Install Metrics Server +kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml +kubectl patch deployment metrics-server -n kube-system --type 'json' -p '[{"op": "add", "path": "/spec/template/spec/containers/0/args/-", "value": "--kubelet-insecure-tls"}]' + +# Install Kubernetes Dashboard +kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml + +# Create Dashboard User +cat <> /vagrant/configs/token + +sudo -i -u vagrant bash << EOF +mkdir -p /home/vagrant/.kube +sudo cp -i /vagrant/configs/config /home/vagrant/.kube/ +sudo chown 1000:1000 /home/vagrant/.kube/config +EOF + +sudo systemctl restart systemd-resolved +sudo swapoff -a && sudo systemctl daemon-reload && sudo systemctl restart kubelet + + + diff --git a/Days/Kubernetes/scripts/node.sh b/Days/Kubernetes/scripts/node.sh new file mode 100644 index 0000000..ad16ffc --- /dev/null +++ b/Days/Kubernetes/scripts/node.sh @@ -0,0 +1,14 @@ +#! /bin/bash + +/bin/bash /vagrant/configs/join.sh -v + +sudo -i -u vagrant bash << EOF +mkdir -p /home/vagrant/.kube +sudo cp -i /vagrant/configs/config /home/vagrant/.kube/ +sudo chown 1000:1000 /home/vagrant/.kube/config +NODENAME=$(hostname -s) +kubectl label node $(hostname -s) node-role.kubernetes.io/worker=worker-new +EOF + +sudo systemctl restart systemd-resolved +sudo swapoff -a && sudo systemctl daemon-reload && sudo systemctl restart kubelet \ No newline at end of file diff --git a/Days/Kubernetes/statefulset.yaml b/Days/Kubernetes/statefulset.yaml new file mode 100644 index 0000000..a1e2526 --- /dev/null +++ b/Days/Kubernetes/statefulset.yaml @@ -0,0 +1,86 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + labels: + name: mongo + name: mongo + annotations: + source: "https://github.com/saintdle/pacman-tanzu" +spec: + replicas: 1 + serviceName: mongo + selector: + matchLabels: + name: mongo + template: + metadata: + labels: + name: mongo + spec: + initContainers: + - args: + - | + mkdir -p /bitnami/mongodb + chown -R "1001:1001" "/bitnami/mongodb" + command: + - /bin/bash + - -ec + image: docker.io/bitnami/bitnami-shell:10-debian-10-r158 + imagePullPolicy: Always + name: volume-permissions + resources: {} + securityContext: + runAsUser: 0 + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /bitnami/mongodb + name: mongo-db + restartPolicy: Always + schedulerName: default-scheduler + securityContext: + fsGroup: 1001 + serviceAccountName: default + terminationGracePeriodSeconds: 30 + volumes: + - name: mongo-db + persistentVolumeClaim: + claimName: mongo-storage + containers: + - image: bitnami/mongodb:4.4.8 + name: mongo + env: + - name: MONGODB_ROOT_PASSWORD + valueFrom: + secretKeyRef: + key: database-admin-password + name: mongodb-users-secret + - name: MONGODB_DATABASE + valueFrom: + secretKeyRef: + key: database-name + name: mongodb-users-secret + - name: MONGODB_PASSWORD + valueFrom: + secretKeyRef: + key: database-password + name: mongodb-users-secret + - name: MONGODB_USERNAME + valueFrom: + secretKeyRef: + key: database-user + name: mongodb-users-secret + readinessProbe: + exec: + command: + - /bin/sh + - -i + - -c + - mongo 127.0.0.1:27017/$MONGODB_DATABASE -u $MONGODB_USERNAME -p $MONGODB_PASSWORD + --eval="quit()" + ports: + - name: mongo + containerPort: 27017 + volumeMounts: + - name: mongo-db + mountPath: /bitnami/mongodb/ \ No newline at end of file