Skip to content
This repository has been archived by the owner on Jul 12, 2024. It is now read-only.
Tomasz Derkowski edited this page Oct 7, 2018 · 4 revisions

Kubernetes

Infrastruktura

Master

Komponenty

Worker

Komponenty

Nody

Podstawowe informację o nodach

kubectl get node
NAME                 STATUS    ROLES     AGE       VERSION
kubernetes-master    Ready     master    238d      v1.9.3
kubernetes-worker1   Ready     <none>    238d      v1.9.3
kubernetes-worker2   Ready     <none>    238d      v1.9.3

Informacje rozszerzone

kubectl get node -o wide
NAME                 STATUS    ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION               CONTAINER-RUNTIME
kubernetes-master    Ready     master    238d      v1.9.3    <none>        CentOS Linux 7 (Core)   3.10.0-693.17.1.el7.x86_64   docker://1.12.6
kubernetes-worker1   Ready     <none>    238d      v1.9.3    <none>        CentOS Linux 7 (Core)   3.10.0-693.17.1.el7.x86_64   docker://1.12.6
kubernetes-worker2   Ready     <none>    238d      v1.9.3    <none>        CentOS Linux 7 (Core)   3.10.0-693.17.1.el7.x86_64   docker://1.12.6

kubectl describe node <nazwa_noda> - prezentuje szczegółowe informacje o nodzie

kubectl describe node kubernetes-master
Name:               kubernetes-master
Roles:              master
Labels:             beta.kubernetes.io/arch=amd64
                 beta.kubernetes.io/os=linux
                 kubernetes.io/hostname=kubernetes-master
                 node-role.kubernetes.io/master=
Annotations:        flannel.alpha.coreos.com/backend-data={"VtepMAC":"ba:44:cf:33:a4:48"}
                 flannel.alpha.coreos.com/backend-type=vxlan
                 flannel.alpha.coreos.com/kube-subnet-manager=true
                 flannel.alpha.coreos.com/public-ip=192.168.1.120
                 node.alpha.kubernetes.io/ttl=0
                 volumes.kubernetes.io/controller-managed-attach-detach=true
Taints:             node-role.kubernetes.io/master:NoSchedule
CreationTimestamp:  Sun, 11 Feb 2018 12:27:39 +0100
Conditions:
Type             Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
----             ------  -----------------                 ------------------                ------                       -------
OutOfDisk        False   Sun, 07 Oct 2018 22:58:56 +0200   Sun, 11 Feb 2018 12:27:32 +0100   KubeletHasSufficientDisk     kubelet has sufficient disk space available
MemoryPressure   False   Sun, 07 Oct 2018 22:58:56 +0200   Sun, 11 Feb 2018 12:36:06 +0100   KubeletHasSufficientMemory   kubelet has sufficient memory available
DiskPressure     False   Sun, 07 Oct 2018 22:58:56 +0200   Sun, 11 Feb 2018 12:36:06 +0100   KubeletHasNoDiskPressure     kubelet has no disk pressure
Ready            True    Sun, 07 Oct 2018 22:58:56 +0200   Sun, 11 Feb 2018 12:36:06 +0100   KubeletReady                 kubelet is posting ready status
Addresses:
InternalIP:  192.168.1.120
Hostname:    kubernetes-master
Capacity:
cpu:     1
memory:  1016188Ki
pods:    110
Allocatable:
cpu:     1
memory:  913788Ki
pods:    110
System Info:
Machine ID:                 a690c5056da24086a246c7363c7cc873
System UUID:                A690C505-6DA2-4086-A246-C7363C7CC873
Boot ID:                    e73bd81e-a16f-44e5-a49d-d4bc7b8e208e
Kernel Version:             3.10.0-693.17.1.el7.x86_64
OS Image:                   CentOS Linux 7 (Core)
Operating System:           linux
Architecture:               amd64
Container Runtime Version:  docker://1.12.6
Kubelet Version:            v1.9.3
Kube-Proxy Version:         v1.9.3
PodCIDR:                     10.244.0.0/24
ExternalID:                  kubernetes-master
Non-terminated Pods:         (7 in total)
Namespace                  Name                                         CPU Requests  CPU Limits  Memory Requests  Memory Limits
---------                  ----                                         ------------  ----------  ---------------  -------------
kube-system                etcd-kubernetes-master                       0 (0%)        0 (0%)      0 (0%)           0 (0%)
kube-system                kube-apiserver-kubernetes-master             250m (25%)    0 (0%)      0 (0%)           0 (0%)
kube-system                kube-controller-manager-kubernetes-master    200m (20%)    0 (0%)      0 (0%)           0 (0%)
kube-system                kube-dns-6f4fd4bdf-bzsgl                     260m (26%)    0 (0%)      110Mi (12%)      170Mi (19%)
kube-system                kube-flannel-ds-g74vb                        0 (0%)        0 (0%)      0 (0%)           0 (0%)
kube-system                kube-proxy-4p6rr                             0 (0%)        0 (0%)      0 (0%)           0 (0%)
kube-system                kube-scheduler-kubernetes-master             100m (10%)    0 (0%)      0 (0%)           0 (0%)
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
CPU Requests  CPU Limits  Memory Requests  Memory Limits
------------  ----------  ---------------  -------------
810m (81%)    0 (0%)      110Mi (12%)      170Mi (19%)
Events:         <none>

Namespace

Wyświetl wszystkie utworzone namespace

kubectl get namespace
NAME          STATUS    AGE
default       Active    238d
kube-public   Active    238d
kube-system   Active    238d

Pod

Najmniejszy jednostka w środowisku Kubernetes. Najlepszą praktyką jest by w jednym podzie znajdował się tylko jeden kontener, ale może ich być więcej. Jest to sandbox w którym uruchamiane są kontenery. Pod zawiera wszystkie elementy potrzebne do uruchomienia kontenera, IP stack, namespaces, zasoby CPU oraz RAM, przydzielony storage. Jeśli w podzie znajduje się wiecej niż jeden kontener, wszystkie kontenery dzielą te zasoby. Jeśli w podzie znajduje się więcej niż jeden kontener trzeba posiłkować się odseparowaniem ruchu sieciowego na poziomie portów.

Podstawowa definicja noda:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx:1.7.9
    ports:
    - containerPort: 80

Replica Controller

Odpowiada za definiowanie i utrzymywanie odpowiedniej ilości replik podów na nodach.

Services

Jest to obiekt, który pozwala nam na grupowanie podów. Tzn. jeśli mamy kilka podów które świadczą tą samą usługę, definiujemy obiekt typu service który grupuje te pody i pozwala nam na odwoływanie się do usługi tylko po IP lub nazwie service. Service zaś dystrybuje zapytanie do poda który świadczy usługę. Single point o contact. Zawiera zawsze aktualną listę podów które ma pod sobą i przesyła zapytanie do poda który żyje. Zniszczone pody usuwane są z listy dostępnych podów. Pody które ma sobą service definiuje się za pomocą labels. W związku z charakterystyką obiektu service jest to naturalny load balancer.

Deployments

Pozwala na szybkie wprowadzanie nowych wersji usług. Dzięki deployments wprowadzenie nowej wersji nie oznacza przerwanie w dostarczaniu usługi w poprzedniej wersji.

Persistent Volumes