fix .git file in Kubernetes
This commit is contained in:
parent
b63dba3b4a
commit
348aaa5fe8
@ -0,0 +1 @@
|
|||||||
|
1.5:e4b0d545-5fd5-49c6-88be-44139c9ad3d8
|
@ -0,0 +1 @@
|
|||||||
|
1645452510
|
@ -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"}
|
@ -0,0 +1 @@
|
|||||||
|
0
|
1
Days/Kubernetes/.vagrant/machines/master/virtualbox/id
Normal file
1
Days/Kubernetes/.vagrant/machines/master/virtualbox/id
Normal file
@ -0,0 +1 @@
|
|||||||
|
e4b0d545-5fd5-49c6-88be-44139c9ad3d8
|
@ -0,0 +1 @@
|
|||||||
|
758da8fa9ae14606a03e2b90a86a0477
|
@ -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-----
|
@ -0,0 +1 @@
|
|||||||
|
{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/Users/micha/demo/vagrant-kubeadm-kubernetes","disabled":false,"__vagrantfile":true}}}
|
@ -0,0 +1 @@
|
|||||||
|
C:/Users/micha/demo/vagrant-kubeadm-kubernetes
|
@ -0,0 +1 @@
|
|||||||
|
1.5:1067c79e-62d1-45ee-91e8-720aef4f1298
|
@ -0,0 +1 @@
|
|||||||
|
1645453183
|
@ -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"}
|
@ -0,0 +1 @@
|
|||||||
|
0
|
1
Days/Kubernetes/.vagrant/machines/node01/virtualbox/id
Normal file
1
Days/Kubernetes/.vagrant/machines/node01/virtualbox/id
Normal file
@ -0,0 +1 @@
|
|||||||
|
1067c79e-62d1-45ee-91e8-720aef4f1298
|
@ -0,0 +1 @@
|
|||||||
|
f98a4ae7e24c423a942d7935e71d2f36
|
@ -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-----
|
@ -0,0 +1 @@
|
|||||||
|
{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/Users/micha/demo/vagrant-kubeadm-kubernetes","disabled":false,"__vagrantfile":true}}}
|
@ -0,0 +1 @@
|
|||||||
|
C:/Users/micha/demo/vagrant-kubeadm-kubernetes
|
@ -0,0 +1 @@
|
|||||||
|
1.5:32937b8e-60c8-425f-b356-238ff3983f9f
|
@ -0,0 +1 @@
|
|||||||
|
1645453327
|
@ -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"}
|
@ -0,0 +1 @@
|
|||||||
|
0
|
1
Days/Kubernetes/.vagrant/machines/node02/virtualbox/id
Normal file
1
Days/Kubernetes/.vagrant/machines/node02/virtualbox/id
Normal file
@ -0,0 +1 @@
|
|||||||
|
32937b8e-60c8-425f-b356-238ff3983f9f
|
@ -0,0 +1 @@
|
|||||||
|
60a1767f8086405f9b2e5f975062825b
|
@ -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-----
|
@ -0,0 +1 @@
|
|||||||
|
{"virtualbox":{"/vagrant":{"guestpath":"/vagrant","hostpath":"C:/Users/micha/demo/vagrant-kubeadm-kubernetes","disabled":false,"__vagrantfile":true}}}
|
@ -0,0 +1 @@
|
|||||||
|
C:/Users/micha/demo/vagrant-kubeadm-kubernetes
|
9
Days/Kubernetes/.vagrant/rgloader/loader.rb
Normal file
9
Days/Kubernetes/.vagrant/rgloader/loader.rb
Normal file
@ -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
|
33
Days/Kubernetes/Rancher/.gitignore
vendored
Normal file
33
Days/Kubernetes/Rancher/.gitignore
vendored
Normal file
@ -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
|
40
Days/Kubernetes/Rancher/Vagrantfile
vendored
Normal file
40
Days/Kubernetes/Rancher/Vagrantfile
vendored
Normal file
@ -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
|
91
Days/Kubernetes/Rancher/scripts/common.sh
Normal file
91
Days/Kubernetes/Rancher/scripts/common.sh
Normal file
@ -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 <<EOF | sudo tee /etc/modules-load.d/k8s.conf
|
||||||
|
br_netfilter
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
|
||||||
|
net.bridge.bridge-nf-call-ip6tables = 1
|
||||||
|
net.bridge.bridge-nf-call-iptables = 1
|
||||||
|
EOF
|
||||||
|
sudo sysctl --system
|
||||||
|
|
||||||
|
# containerd
|
||||||
|
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
|
||||||
|
overlay
|
||||||
|
br_netfilter
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sudo modprobe overlay
|
||||||
|
sudo modprobe br_netfilter
|
||||||
|
|
||||||
|
# Setup required sysctl params, these persist across reboots.
|
||||||
|
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
|
||||||
|
net.bridge.bridge-nf-call-iptables = 1
|
||||||
|
net.ipv4.ip_forward = 1
|
||||||
|
net.bridge.bridge-nf-call-ip6tables = 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Apply sysctl params without reboot
|
||||||
|
sudo sysctl --system
|
||||||
|
|
||||||
|
#Clean Install Docker Engine on Ubuntu
|
||||||
|
sudo apt-get remove docker docker-engine docker.io containerd runc
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y \
|
||||||
|
apt-transport-https \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
gnupg \
|
||||||
|
lsb-release
|
||||||
|
|
||||||
|
#Add Docker’s official GPG key:
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||||
|
|
||||||
|
#set up the stable repository
|
||||||
|
echo \
|
||||||
|
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
|
||||||
|
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /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
|
||||||
|
|
83
Days/Kubernetes/Rancher/scripts/master.sh
Normal file
83
Days/Kubernetes/Rancher/scripts/master.sh
Normal file
@ -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 <<EOF | kubectl apply -f -
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: admin-user
|
||||||
|
namespace: kubernetes-dashboard
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF | kubectl apply -f -
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: admin-user
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: cluster-admin
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: admin-user
|
||||||
|
namespace: kubernetes-dashboard
|
||||||
|
EOF
|
||||||
|
|
||||||
|
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}" >> /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
|
||||||
|
|
||||||
|
|
||||||
|
|
14
Days/Kubernetes/Rancher/scripts/node.sh
Normal file
14
Days/Kubernetes/Rancher/scripts/node.sh
Normal file
@ -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
|
40
Days/Kubernetes/Vagrantfile
vendored
Normal file
40
Days/Kubernetes/Vagrantfile
vendored
Normal file
@ -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
|
19
Days/Kubernetes/configs/config
Normal file
19
Days/Kubernetes/configs/config
Normal file
@ -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=
|
1
Days/Kubernetes/configs/join.sh
Normal file
1
Days/Kubernetes/configs/join.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
kubeadm join 10.0.0.10:6443 --token 0s6dei.3nv1q4xkkv8g98qc --discovery-token-ca-cert-hash sha256:5a7d70a8498795c680b2fe3d7840585ac74b0451769f4781bc4298de4c9b23f8
|
1
Days/Kubernetes/configs/token
Normal file
1
Days/Kubernetes/configs/token
Normal file
@ -0,0 +1 @@
|
|||||||
|
eyJhbGciOiJSUzI1NiIsImtpZCI6IlM1WGxrRnVIclJRaEVDbmg3cndZZFVTRTFpT0lfQzZsZ2NXbHZoOS1pbVUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWo1a3B2Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJiZTZjZmUwZS0yYzFhLTRkNTYtYmVkMC1jYWRmYjYxNzA1N2YiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.LaBPEh6Qantd8tAc0X5DY9dDwUqZpxu38FHnp9TSJw-ghs3TsjrscFulUeEAtp2ng3ElLcU4SbNKPGJflF2dyW9Tmfn-Kt_6Jwq8HQ9GOCwAicEz0JVireHA7EWhATzuT56eO6MTe-2j5bpGnPQRJJtQ8AbtAN3nVK7RPjSzmc8Ppqx1z5i4oCGwiyRlGwqT-FkCtQLbQaQ4XmrASQoN4pJ_OBy5slztUhk32HdGP6pQx5c-nfei-of_4ij_fHrP0xEEfmVVvXqi9WKv1PLkQ3qTiSFDzv8M2sE4T6XmCGBbw7gyHzEGSpOAPZr00bX_YMCUvEF0lyP4YK696xWCBA
|
41
Days/Kubernetes/nginx-stateless-demo.yaml
Normal file
41
Days/Kubernetes/nginx-stateless-demo.yaml
Normal file
@ -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
|
17
Days/Kubernetes/pacman-ingress.yaml
Normal file
17
Days/Kubernetes/pacman-ingress.yaml
Normal file
@ -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
|
281
Days/Kubernetes/pacman-stateful-demo.yaml
Normal file
281
Days/Kubernetes/pacman-stateful-demo.yaml
Normal file
@ -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
|
91
Days/Kubernetes/scripts/common.sh
Normal file
91
Days/Kubernetes/scripts/common.sh
Normal file
@ -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 <<EOF | sudo tee /etc/modules-load.d/k8s.conf
|
||||||
|
br_netfilter
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
|
||||||
|
net.bridge.bridge-nf-call-ip6tables = 1
|
||||||
|
net.bridge.bridge-nf-call-iptables = 1
|
||||||
|
EOF
|
||||||
|
sudo sysctl --system
|
||||||
|
|
||||||
|
# containerd
|
||||||
|
cat <<EOF | sudo tee /etc/modules-load.d/containerd.conf
|
||||||
|
overlay
|
||||||
|
br_netfilter
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sudo modprobe overlay
|
||||||
|
sudo modprobe br_netfilter
|
||||||
|
|
||||||
|
# Setup required sysctl params, these persist across reboots.
|
||||||
|
cat <<EOF | sudo tee /etc/sysctl.d/99-kubernetes-cri.conf
|
||||||
|
net.bridge.bridge-nf-call-iptables = 1
|
||||||
|
net.ipv4.ip_forward = 1
|
||||||
|
net.bridge.bridge-nf-call-ip6tables = 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Apply sysctl params without reboot
|
||||||
|
sudo sysctl --system
|
||||||
|
|
||||||
|
#Clean Install Docker Engine on Ubuntu
|
||||||
|
sudo apt-get remove docker docker-engine docker.io containerd runc
|
||||||
|
sudo apt-get update -y
|
||||||
|
sudo apt-get install -y \
|
||||||
|
apt-transport-https \
|
||||||
|
ca-certificates \
|
||||||
|
curl \
|
||||||
|
gnupg \
|
||||||
|
lsb-release
|
||||||
|
|
||||||
|
#Add Docker’s official GPG key:
|
||||||
|
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
|
||||||
|
|
||||||
|
#set up the stable repository
|
||||||
|
echo \
|
||||||
|
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
|
||||||
|
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /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
|
||||||
|
|
83
Days/Kubernetes/scripts/master.sh
Normal file
83
Days/Kubernetes/scripts/master.sh
Normal file
@ -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 <<EOF | kubectl apply -f -
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: admin-user
|
||||||
|
namespace: kubernetes-dashboard
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat <<EOF | kubectl apply -f -
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: admin-user
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: ClusterRole
|
||||||
|
name: cluster-admin
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: admin-user
|
||||||
|
namespace: kubernetes-dashboard
|
||||||
|
EOF
|
||||||
|
|
||||||
|
kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}" >> /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
|
||||||
|
|
||||||
|
|
||||||
|
|
14
Days/Kubernetes/scripts/node.sh
Normal file
14
Days/Kubernetes/scripts/node.sh
Normal file
@ -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
|
86
Days/Kubernetes/statefulset.yaml
Normal file
86
Days/Kubernetes/statefulset.yaml
Normal file
@ -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/
|
Loading…
Reference in New Issue
Block a user