Differences between revisions 8 and 9
Revision 8 as of 2021-10-19 08:03:35
Size: 2538
Editor: PieterSmit
Comment:
Revision 9 as of 2021-10-19 08:42:49
Size: 4020
Editor: PieterSmit
Comment:
Deletions are marked like this. Additions are marked like this.
Line 47: Line 47:
      1. yml definition newer ```ReplicationSet```, requires selector:
        *
apiVersion: apps/v1
        * kind: ReplicaSet
        * metadata:
 
name: myapp-rc
            labels:
              app: myapp
 
type: front-end
      1. yml definition newer ```ReplicationSet```, requires selector: {{{
        
apiVersion: apps/v1
         kind: ReplicaSet
         metadata:
name: myapp-rc
           labels:
             app: myapp
type: front-end
           selector:
             app: myapp
             type: front-end
          }}}
Line 73: Line 77:
                  * kind: Service ,
    1. Service-!NodePort k8s-Obj-bind external node port to internal. NodePort is external port 30000-32767 {{{
         apiVersion: v1
         kind: Service
         metadata:
           name: myapp-service
         spec:
           type: NodePort
           ports:
            - targetPort: 80 ->POD
              port: 80 ->This service local ip port (Optional)
              nodePort: 30008 ->Node external port listening on host, same port on all Nodes!
           selector:
             app: myapp
             type: front-end
       }}}
    2. Service-!ClusterIP internal network, default type {{{
         apiVersion: v1
         kind: Service
         metadata:
           name: back-end-service
         spec:
           type: ClusterIP << Default if not specified
           ports:
            - targetPort: 80
              port: 80
           selector:
             name: my-app
             type: back-end
       }}}
    3. Service-!LoadBalancer - Configure external LB {{{
         apiVersion: v1
         kind: Service
         metadata:
           name: myapp-service
         spec:
           type: Loadbalancer
           ports:
            - targetPort: 80
              port: 80
              nodePort: 30008
           selector:
             name: my-app
             type: back-end
       }}}

k8s/StudyNotes

k8s/StudyNotes/cubectl k8s/StudyNotes/Deployments

  • https://kodekloud.com/

  • kubeadm
    • deploys all the kubernetes services downloaded from web
  • Kube-Scheduler
    1. Filter Nodes (Pod cant fit)
    2. Rank Nodes (Compare resources left, try to balance cpu/mem usage)
  • kubelet - captain on each Worker Node
  • Kube-proxy - run on each node, service's virtual component
    • All pods can see all other pods, through POD Network, by IP/Name. Exposed through service: eg. db(IP)
    • Watches for service creation, and then configure network e.g. Iptables to forward to actual pod.
    • Install: download wget to install or
      • kubeadm will deploy it as deamon set to each pod in namespace kube-system
  • PODs
    • smallest object in k8s, contains containers, can contain one or more containers
    • scale service by creating more pod instances.
    • additional container could be helper container.
    • network space is shared between containers in the same pod, they can communicate on localhost.
    • k8s Controllers - the brains
      • kind: ReplicaSets - Replication controller -> newer -> Replica Sets

        1. yml definition ReplicationController same 4 sections as other configs

          • apiVersion: v1
          • kind: ReplicationController

          • metadata:
            • name: myapp-rc labels:
              • app: myapp type: front-end
          • spec:
            • template:
              • <pod definition nested, with same 2 sections, metadata, spec>

              replicas: 3
        2. yml definition newer ReplicationSet, requires selector:

                   apiVersion: apps/v1
                   kind: ReplicaSet
                   metadata:
                     name: myapp-rc
                     labels:
                       app: myapp
                       type: front-end
                     selector:
                       app: myapp
                       type: front-end
          • spec:
            • template:
              • <pod definition nested, with same 2 sections, metadata, spec>

              replicas: 3 selector:
              • matchLabels:
                • type: front-end
  • kind: Deployments - Encapsulates ReplicaSet that Encapsulate Pods

    • Can have deployment and replacement policy
  • kind: ResourceQuote

    • spec:
      • hard:
        • cpu:
  • kind: Service ,
    1. Service-NodePort k8s-Obj-bind external node port to internal. NodePort is external port 30000-32767

               apiVersion: v1
               kind: Service
               metadata:
                 name: myapp-service
               spec:
                 type: NodePort
                 ports:
                  - targetPort: 80   ->POD
                    port: 80         ->This service local ip port (Optional)
                    nodePort: 30008  ->Node external port listening on host, same port on all Nodes!
                 selector:
                   app: myapp
                   type: front-end
    2. Service-!ClusterIP internal network, default type

               apiVersion: v1
               kind: Service
               metadata:
                 name: back-end-service
               spec:
                 type: ClusterIP   << Default if not specified
                 ports:
                  - targetPort: 80
                    port: 80
                 selector:
                   name: my-app
                   type: back-end     
    3. Service-LoadBalancer - Configure external LB

               apiVersion: v1
               kind: Service
               metadata:
                 name: myapp-service
               spec:
                 type: Loadbalancer
                 ports:
                  - targetPort: 80
                    port: 80
                    nodePort: 30008
                 selector:
                   name: my-app
                   type: back-end        

k8s/StudyNotes (last edited 2021-10-30 22:48:04 by PieterSmit)