MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings
From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.
With Motoshare, every parked vehicle finds a purpose.
Owners earn. Renters ride.
🚀 Everyone wins.
Day 1
Workstation
kubectl
~/.kube/config
Api Server
Cert
Reference
https://www.devopsschool.com/blog/kubernetes-1-23-6-cluster-setup-master-and-worker-in-ubuntu-20-04/
Master
- Api Server -- POD --> COntainer --> Image --> Google Registry
- etcd -- POD --> COntainer --> Image --> Google Registry
- Controller mgr -- POD --> COntainer --> Image --> Google Registry
- Schedular -- POD --> COntainer --> Image --> Google Registry
- Kubelet
- Docker
- ContainerD
- kubeadm init
- kubectl
Worker
- Proxy -- POD --> COntainer --> Image --> Google Registry
- Docker
- Kubelet
- ContainerD
- kubeadm join
- kubectl
19 ls ~/.kube
20 more ~/.kube/config
21 clear
22 ls
23 clear
24 cd
25 ls
26 kubectl
27 kubectl cluster-info
28 kubectl get nodes
29 kubectl get pods --all-namespaces
30 clear
32 kubectl get nodes
33 watch kubectl get nodes
34 kubectl version
35 kubectl
36 clear
37 kubectl get pods
38 kubectl api-resources
39 history
Code language: PHP (php)
POD
=========================================================
API
====================
CRUD
create
CMD
create
YAML
create -f yamlfile
read
CMD
get
describe
YAML
get -f yamlfile
Update
CMD
edit
YAML
apply -f yamlfile
Delete
CMD
delete
YAML
delete -f yamlfile
================================
Namespace
POD
ReplicationController
Deployment
58 kubectl get nodes
59 kubectl api-resources
60 clear
61 kubectl get ns
62 kubectl
63 clear
64 kubectl create ns dev
65 kubectl create ns qa
66 kubectl get ns
67 kubectl describe ns rajesh
68 kubectl describe ns dev
69 kubectl describe ns qa
70 kubectl edit ns qa
71 kubectl describe ns qa
72 kubectl deelte ns qa
73 kubectl delete ns qa
74 kubectl get ns
apiVersion: v1
kind: Namespace
metadata:
name: devops1
labels:
kubernetes.io/metadata.name: devops1
85 vi ns.yaml
86 kubectl create -f ns.yaml
87 kubectl get -f ns.yaml
88 kubectl describe -f ns.yaml
89 vi ns.yaml
90 kubectl apply -f ns.yaml
91 kubectl describe -f ns.yaml
92 kubectl delete -f ns.yaml
Code language: JavaScript (javascript)
POD
==============================================================================
apiVersion: v1
kind: Pod
metadata:
name: rajesh
labels:
app: helloworld
spec:
containers:
- name: devopsschool1
image: scmgalaxy/nginx-devopsschoolv1
ports:
- name: nginx-port
containerPort: 80
96 vi pod.yaml
97 kubectl create -f pod.yaml
98 kubectl get pods
99 kubectl describe pod rajesh
100 clear
101 kubectl get pods
102 vi pod.yaml
103 kubectl apply -f pod.yaml
104 kubectl describe pod rajesh
105 clear
106 ls
107 kubectl delete -f pod.yaml
108 kubectl get pod
109 kubectl create -f pod.yaml
110 kubectl get pod
111 kubectl get ns
112 kubectl create -f pod.yaml
113 kubectl create -f pod.yaml -n=dev
114 kubectl get ns
115 kubectl get pods
116 kubectl get pods -n=dev
117 cleaer
118 clear
119 kubectl get pods -o wide
Troubleshooting and Debugging Commands:
describe Show details of a specific resource or group of resources
logs Print the logs for a container in a pod
attach Attach to a running container
exec Execute a command in a container
port-forward Forward one or more local ports to a pod
cp Copy files and directories to and from containers
auth Inspect authorization
events List events
120 history
121 clear
122 kubectl
123 clear
124 kubectl get logs
125 kubectl get pods
126 kubectl logs rajesh
127 kubectl get pods -o wide
128 curl http://192.168.1.3
129 kubectl logs rajesh
130 kubectl attach rajesh
131 kubectl exec rajesh ls
132 kubectl exec -it rajesh /bin/bash
133 clear
134 s
135 kubectl port-forward -h
kubectl port-forward --address 0.0.0.0 pod/rajesh 8888:80
135 kubectl port-forward -h
136 history
137 clear
138 kubectl port-forward --address 0.0.0.0 pod/rajesh 8888:80
139 ls
140 kubectl cp pod.yaml rajesh:/tmp
141 kubectl exec rajesh ls /tmp
142 kubectl auth
143 kubectl auth whoami
144 kubectl auth can-i create pod
145 kubectl events
Code language: JavaScript (javascript)
ReplicationController
Replication - 1 POD TO many
Controller - 10 PODS === 10 PODS
apiVersion: v1
kind: ReplicationController
metadata:
name: rajeshrc
spec:
replicas: 5
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: scmgalaxy/nginx-devopsschoolv1
150 kubectl explain ReplicationController.spec
151 kubectl explain ReplicationController.spec.template
152 kubectl explain ReplicationController.spec.template.spec
153 kubectl explain ReplicationController.spec.template.spec.containers
157 vi rc.yaml
158 kubectl get rc
159 kubectl create -f rc.yaml
160 kubectl get pods
161 clear
162 kubectl get rc
163 kubectl edit rc rajeshrc
164 kubectl get rc
165 kubectl get pods
166 kubectl edit rc rajeshrc
167 kubectl get pods
168 clear
169 kubectl edit rc rajeshrc
170 clear
171 kubectl get pods
172 clear
173 kubectl get rc
174 kubectl get pods
175 clear
176 kubectl get rc
177 kubectl delete -f rc.yaml
178 vi rc.yaml
179 kubectl create -f rc.yaml
180 kubectl get pods
181 kubectl get rc
182 clear
183 kubectl get rc
184 kubectl get pods
185 kubectl delete pod rajeshrc-hvtp4 rajeshrc-j2757 rajeshrc-j8tz4
186 kubectl get pods
187 history
Code language: JavaScript (javascript)
Deployment
https://www.devopsschool.com/blog/kubernetes-deployment-strategy-explained-with-example/
What is Deployment
--------------------------------
Replication + Controller
================================
ReplicaSet == ReplicationController
v2 v1
Versioning
Rollout
Rollback
194 kubectl create deployment my-dep --image=scmgalaxy/nginx-devopsschoolv1 --replicas=3
195 kubectl get deploy
196 kubectl scale--replicas=10 deployment/my-dep
197 kubectl scale --replicas=10 deployment/my-dep
198 kubectl get deploy
199 kubectl scale --replicas=2 deployment/my-dep
200 kubectl get deploy
201 kubectl get rs
202 kubectl get deploy
203 kubectl get pods
204 kubectl delete pod my-dep-6f9d67cfc-w95q7 my-dep-6f9d67cfc-x4xnf
205 kubectl get pods
206 kubectl get deploy
207 kubectl edit deploy my-dep
208 kubectl rollout history deploy/my-dep
209 kubectl edit deploy my-dep
210 kubectl rollout history deploy/my-dep
211 kubectl get pods -o wide
212 curl http://192.168.1.60
213 kubectl rollout undo deploy/my-dep --to-revision=1
214 kubectl get pods -o wide
215 curl http://192.168.1.59
216 kubectl get pods -o wide
217 curl http://192.168.1.61
Code language: JavaScript (javascript)
Day2
Service – https://www.devopsschool.com/blog/kubernetes-tutorials-pod-load-balancing-using-service/
Service – https://www.devopsschool.com/blog/kubernetes-service-example-programs/
591 kubectl get deploy
592 kubectl edit deploy my-dep
593 kubectl get deploy
594 kubectl get pods
595 clear
596 ls
597 kubectl get svc
598 kubectl expose -h
599 clear
600 kubectl get deploy
601 kubectl expose deploy my-dep --port=80 --target-port=80
602 kubectl get svc
603 curl http://10.101.32.59
604 kubectl describe svc my-dep
605 kubectl get pods --show-lables
606 kubectl get pods --show-labels
607 clear
608 ls
609 kubectl get svc
610 kubectl expose deploy my-dep --port=80 --target-port=80 --name=np --type=NodePort
611 kubectl get svc
612 curl http://10.109.53.224
613 kubectl expose deploy my-dep --port=80 --target-port=80 --name=lb --type=LoadBalancer
614 kubectl get svc
Code language: JavaScript (javascript)
volume
- https://www.devopsschool.com/blog/kubernetes-volume-hostpath-explained-with-examples/
- https://www.devopsschool.com/blog/persistentvolume-persistentvolumeclaim-volumes-using-hostpath/
Secret
- https://www.devopsschool.com/blog/kubernetes-configmap-explained-using-example/
- https://www.devopsschool.com/blog/explained-kubernetes-secret-with-example/
Security
Compute
POD
ReplicationController
ReplicaSets
Deployment
LB
Service
Storage
PV
PVC
Configmap
Secret
Utility
Jobs
CronJobs
Security
Roles
ClusterRole
Rolebinding
ClusterRolebinding
ServiceAccount
=============================================================
https://www.devopsschool.com/blog/understanding-authentication-authorization-in-kubernetes/
Types of User?
==========================================
HUMAN --->
System ------> ServiceAccount
====================================
Roles --------------------> Namespace Level
GROUP
API
What Access?
ClusterRole ----------------> Cluster Level
GROUP
API
What Access?
===============================================
When u add user to
Role
use Rolebinding
ClusterRole
lusterRolebindingCode language: PHP (php)