Te ABC o te Haumarutanga i Kubernetes: Motuhēhēnga, Whakamanatanga, Kaute

Te ABC o te Haumarutanga i Kubernetes: Motuhēhēnga, Whakamanatanga, Kaute

I te wa poto, i muri mai ranei, i roto i te whakahaere o tetahi punaha, ka puta te take o te haumarutanga: te whakarite i te motuhēhēnga, te wehenga o nga mana, te arotake me etahi atu mahi. Kua hangaia mo Kubernetes maha nga otinga, e taea ai e koe te whakatutuki i nga whakaritenga ki nga paerewa ahakoa i roto i nga taiao tino uaua... Ko nga mea ano e whakatapua ana ki nga ahuatanga taketake o te haumarutanga kua whakatinanahia i roto i nga tikanga hanga o nga K8. Tuatahi, ka whai hua ki te hunga e timata ana ki te mohio ki a Kubernetes - hei timatanga mo te ako i nga take e pa ana ki te haumarutanga.

Whakaaturanga

E rua nga momo kaiwhakamahi i Kubernetes:

  • Nga Kaute Ratonga — nga kaute e whakahaerehia ana e te Kubernetes API;
  • kaiwhakamahi — Ko nga kaiwhakamahi "noa" e whakahaerehia ana e nga ratonga o waho, motuhake.

Ko te rereketanga nui i waenga i enei momo mo nga Kaute Ratonga he mea motuhake kei roto i te Kubernetes API (e kiia ana ko - ServiceAccounts), e herea ana ki te mokowāingoa me te huinga o nga raraunga whakamana e rongoatia ana i roto i te roopu i roto i nga taonga o te momo Nga mea ngaro. Ko enei kaiwhakamahi (Kaute Ratonga) te tikanga ki te whakahaere motika uru ki te API Kubernetes o nga tukanga e whakahaere ana i te roopu Kubernetes.

Karekau he whakaurunga a nga Kaiwhakamahi noa ki te Kubernetes API: me whakahaere e nga tikanga o waho. Ko te tikanga mo nga tangata, mo nga tukanga ranei e noho ana i waho o te roopu.

Ko ia tono API e hono ana ki tetahi Kaute Ratonga, he Kaiwhakamahi, ka kiia he ingoamuna.

Ko nga raraunga motuhēhēnga kaiwhakamahi kei roto:

  • ingoa kaiwhakamahi — ingoa kaiwhakamahi (take tairongo!);
  • UID - he aho tautuhi kaiwhakamahi ka taea te panui e te miihini "he rite tonu, he ahurei ake i te ingoa kaiwhakamahi";
  • Ngā Roopu — te rarangi o nga roopu kei a ia te kaiwhakamahi;
  • anō — etahi atu mara ka taea te whakamahi e te tikanga whakamana.

Ka taea e Kubernetes te whakamahi i te maha o nga tikanga motuhēhēnga: Tiwhikete X509, Tohu Kaiwhiwhi, takawaenga whakamotuhēhē, HTTP Basic Auth. Ma te whakamahi i enei tikanga, ka taea e koe te whakauru i te maha o nga kaupapa whakamana: mai i te konae pateko me nga kupuhipa ki OpenID OAuth2.

I tua atu, ka taea te whakamahi i etahi kaupapa whakamana i te wa kotahi. Ma te taunoa, ka whakamahia e te tautau:

  • tohu kaute ratonga - mo nga Kaute Ratonga;
  • X509 - mo nga Kaiwhakamahi.

Ko te patai mo te whakahaere i nga Ratonga Kaute kei tua atu i te waahanga o tenei tuhinga, engari mo te hunga e hiahia ana ki te mohio ki tenei take i roto i nga korero taipitopito, ka tūtohu ahau kia timata me wharangi tuhinga whaimana. Ka ata tirohia e maatau te take mo te mahi o nga tiwhikete X509.

Tiwhikete mo nga kaiwhakamahi (X.509)

Ko te huarahi matarohia mo te mahi me nga tiwhikete ko:

  • whakatipuranga matua:
    mkdir -p ~/mynewuser/.certs/
    openssl genrsa -out ~/.certs/mynewuser.key 2048
  • te whakaputa tono tiwhikete:
    openssl req -new -key ~/.certs/mynewuser.key -out ~/.certs/mynewuser.csr -subj "/CN=mynewuser/O=company"
  • te tukatuka i tetahi tono tiwhikete ma te whakamahi i nga taviri CA cluster Kubernetes, kia whiwhi tiwhikete kaiwhakamahi (ki te whiwhi tiwhikete, me whakamahi koe i tetahi kaute e whai waahi ana ki te taviri CA cluster Kubernetes, kei roto i te taunoa. /etc/kubernetes/pki/ca.key):
    openssl x509 -req -in ~/.certs/mynewuser.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out ~/.certs/mynewuser.crt -days 500
  • te hanga kōnae whirihoranga:
    • whakaahuatanga tautau (whakaahua te wahitau me te waahi o te konae tiwhikete CA mo tetahi whakaurunga tautau motuhake):
      kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server=https://192.168.100.200:6443
    • pehea ranei e korekōwhiringa kua tohua - kaore koe e tohu i te tiwhikete pakiaka (kaore e tirohia e te kubectl te tika o te api-server o te tautau):
      kubectl config set-cluster kubernetes  --insecure-skip-tls-verify=true --server=https://192.168.100.200:6443
    • te taapiri i tetahi kaiwhakamahi ki te konae whirihoranga:
      kubectl config set-credentials mynewuser --client-certificate=.certs/mynewuser.crt  --client-key=.certs/mynewuser.key
    • he horopaki taapiri:
      kubectl config set-context mynewuser-context --cluster=kubernetes --namespace=target-namespace --user=mynewuser
    • taumahi horopaki taunoa:
      kubectl config use-context mynewuser-context

I muri i nga whawhe o runga, i roto i te konae .kube/config ka hangaia he whirihora penei:

apiVersion: v1
clusters:
- cluster:
    certificate-authority: /etc/kubernetes/pki/ca.crt
    server: https://192.168.100.200:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    namespace: target-namespace
    user: mynewuser
  name: mynewuser-context
current-context: mynewuser-context
kind: Config
preferences: {}
users:
- name: mynewuser
  user:
    client-certificate: /home/mynewuser/.certs/mynewuser.crt
    client-key: /home/mynewuser/.certs/mynewuser.key

Kia ngawari ake te whakawhiti i te whirihora i waenga i nga kaute me nga kaitoro, he pai ki te whakatika i nga uara o nga taviri e whai ake nei:

  • certificate-authority
  • client-certificate
  • client-key

Ki te mahi i tenei, ka taea e koe te whakawaehere i nga konae kua tohua i roto i a raatau ma te whakamahi i te base64 ka rehitatia ki te whirihora, me te taapiri i te pimuri ki te ingoa o nga taviri. -data, i.e. kua riro certificate-authority-data me nga mea pena.

Tiwhikete me te kubeadm

Me te tukunga Kubernetes 1.15 Ko te mahi me nga tiwhikete kua tino maamaa ake na te putanga alpha o tana tautoko i roto whaipainga kubeadm. Hei tauira, koinei te ahua o te whakaputa i te konae whirihoranga me nga taviri kaiwhakamahi:

kubeadm alpha kubeconfig user --client-name=mynewuser --apiserver-advertise-address 192.168.100.200

NB: E hiahiatia ana pānuitanga wāhitau ka kitea i roto i te whirihora api-server, kei roto i te taunoa /etc/kubernetes/manifests/kube-apiserver.yaml.

Ka puta te whirihoranga ki te stdout. Me penapena ki roto ~/.kube/config pūkete kaiwhakamahi, ki tetahi konae kua tohua ki tetahi taurangi taiao KUBECONFIG.

Keri Hohonu

Mo te hunga e hiahia ana ki te mohio ki nga take kua whakamaramatia ake:

Whakaaetanga

Karekau he mana o te kaute kua whakamanahia ki te mahi i runga i te tautau. Hei tuku whakaaetanga, ka whakatinanahia e Kubernetes tetahi tikanga whakamana.

I mua i te putanga 1.6, i whakamahia e Kubernetes tetahi momo whakamana e kiia nei ABAC (Te mana uru-a-huanga). Ka kitea nga korero mo tena i roto tuhinga whaimana. Ko tenei huarahi ka kiia he taonga tuku iho, engari ka taea tonu e koe te whakamahi i te taha o etahi atu momo motuhēhēnga.

Ko te huarahi o naianei (me te ngawari ake) mo te wehewehe i nga motika uru ki tetahi tautau ka kiia RBAC (Te whakahaere whakauru whakauru). Kua kiia kua pumau mai i te putanga Kubernetes 1.8. Ka whakatinanahia e te RBAC tetahi tauira motika e aukati ana i nga mea katoa kaore i tino whakaaetia.
Kia taea ai te RBAC, me timata koe i te Kubernetes api-server me te tawhā --authorization-mode=RBAC. Kua tautuhia nga tawhā ki te whakaaturanga me te whirihoranga api-tūmau, na te taunoa kei te taha o te huarahi /etc/kubernetes/manifests/kube-apiserver.yaml, i te wahanga command. Heoi, kua whakahohea kee te RBAC ma te taunoa, no reira kare pea koe e manukanuka: ka taea e koe te manatoko ma te uara. authorization-mode (i roto i nga korero kua whakahuatia ake nei kube-apiserver.yaml). Ma te ara, i roto i ona tikanga tera pea etahi atu momo whakamanatanga (node, webhook, always allow), engari ka waiho e matou o raatau whakaaro ki waho o te waahanga o te rauemi.

Ma te ara, kua whakaputaina ketia e matou he tuhinga me te whakamaarama tika mo nga maataapono me nga ahuatanga o te mahi me te RBAC, no reira ka whakawhāitihia ahau ki te raarangi poto o nga kaupapa me nga tauira.

Ko nga hinonga API e whai ake nei ka whakamahia hei whakahaere i te uru ki Kubernetes ma te RBAC:

  • Role и ClusterRole — nga mahi hei whakaahua mo nga motika uru:
  • Role ka taea e koe te whakaahua motika i roto i te mokowāingoa;
  • ClusterRole - i roto i te tautau, tae atu ki nga mea motuhake kahui penei i nga node, nga url rauemi-kore (arā, kaore e pa ana ki nga rauemi Kubernetes - hei tauira, /version, /logs, /api*);
  • RoleBinding и ClusterRoleBinding - whakamahia mo te here Role и ClusterRole ki te kaiwhakamahi, ki te roopu kaiwhakamahi, ki te ServiceAccount ranei.

Ko nga hinonga Role me te RoleBinding kua whakawhäitihia e te mokowāingoa, i.e. me noho i roto i te mokowāingoa kotahi. Heoi, ka taea e te RoleBinding te tohutoro i tetahi ClusterRole, ka taea e koe te hanga i tetahi huinga o nga whakaaetanga whanui me te whakahaere uru ma te whakamahi i aua mea.

Ko nga mahi e whakaatu ana i nga tika ma te whakamahi i nga huinga ture kei roto:

  • Rōpū API - tirohia tuhinga whaimana na apiGroups me te putanga kubectl api-resources;
  • rauemi (Rauemi: pod, namespace, deployment etc.);
  • Kupumahi (kupu mahi: set, update me nga mea pena).
  • ingoa rauemi (resourceNames) - mo te take ka hiahia koe ki te tuku uru ki tetahi rauemi motuhake, kaua ki nga rauemi katoa o tenei momo.

Ka kitea he tātaritanga mo te whakamanatanga i Kubernetes i te wharangi tuhinga whaimana. Engari (he pai ake ranei, hei taapiri atu ki tenei), ka hoatu e ahau etahi tauira e whakaatu ana i ana mahi.

Nga tauira o nga hinonga RBAC

Ngāwari Role, ka taea e koe te tiki i te rarangi me te mana o nga pene me te aroturuki i a raatau i te waahi ingoa target-namespace:

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  namespace: target-namespace
  name: pod-reader
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]

Hei tauira: ClusterRole, ka taea e koe te tiki rarangi me te mana o nga poti me te aroturuki i a raatau puta noa i te roopu:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  # секции "namespace" нет, так как ClusterRole задействует весь кластер
  name: secret-reader
rules:
- apiGroups: [""]
  resources: ["secrets"]
  verbs: ["get", "watch", "list"]

Hei tauira: RoleBinding, ka taea e te kaiwhakamahi mynewuser "panui" nga pene i te waahi ingoa my-namespace:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: read-pods
  namespace: target-namespace
subjects:
- kind: User
  name: mynewuser # имя пользователя зависимо от регистра!
  apiGroup: rbac.authorization.k8s.io
roleRef:
  kind: Role # здесь должно быть “Role” или “ClusterRole”
  name: pod-reader # имя Role, что находится в том же namespace,
                   # или имя ClusterRole, использование которой
                   # хотим разрешить пользователю
  apiGroup: rbac.authorization.k8s.io

Te arotake o nga huihuinga

Ka taea te whakaatu i te hoahoanga Kubernetes e whai ake nei:

Te ABC o te Haumarutanga i Kubernetes: Motuhēhēnga, Whakamanatanga, Kaute

Ko te waahanga matua o Kubernetes te kawenga mo te tukatuka tono api-tūmau. Ko nga mahi katoa i runga i te roopu ka haere ma roto. Ka taea e koe te panui atu mo enei tikanga o roto i te tuhinga "Ka ahatia i Kubernetes ina whakahaere koe i te kubectl run?".

Ko te arotakenga o te punaha he waahanga whakamere i roto i nga Kubernetes, kua monoa ma te taunoa. Ka taea e koe te whakauru i nga waea katoa ki te API Kubernetes. Ka whakaaro pea koe, ko nga mahi katoa e pa ana ki te aro turuki me te whakarereke i te ahua o te roopu ka mahia ma tenei API. Ka kitea he whakaahuatanga pai mo ona kaha (penei i o mua). tuhinga whaimana K8s. I muri mai, ka ngana ahau ki te whakaatu i te kaupapa ki te reo ngawari ake.

Na kia taea ai te arotake, me tuku e toru nga tawhā e hiahiatia ana ki te ipu i roto i te api-server, e whakaahuahia ana i nga korero i raro nei:

  • --audit-policy-file=/etc/kubernetes/policies/audit-policy.yaml
  • --audit-log-path=/var/log/kube-audit/audit.log
  • --audit-log-format=json

I tua atu i enei tawhā e toru e tika ana, he maha atu nga taapiri e pa ana ki te arotakenga: mai i te hurihanga rangitaki ki nga whakaahuatanga webhook. Tauira o nga tawhā hurihanga rangitaki:

  • --audit-log-maxbackup=10
  • --audit-log-maxsize=100
  • --audit-log-maxage=7

Engari kaore matou e korero ki a raatau - ka kitea e koe nga korero katoa tuhinga kube-apiserver.

Ka rite ki te korero i mua ake nei, kua tautuhia nga tawhā katoa ki te whakaaturanga me te whirihoranga api-server (ma te taunoa /etc/kubernetes/manifests/kube-apiserver.yaml), i te waahanga command. Kia hoki ki nga tawhā e 3 e hiahiatia ana ka tātarihia:

  1. audit-policy-file — ara ki te konae YAML e whakaahua ana i te kaupapa here kaute. Ka hoki ano tatou ki nga korero a muri ake nei, engari mo tenei wa ka kite ahau me panui te konae e te tukanga api-server. No reira, he mea tika ki te whakairi ki roto i te ipu, ka taea e koe te taapiri i te waehere e whai ake nei ki nga waahanga e tika ana o te whirihora:
      volumeMounts:
        - mountPath: /etc/kubernetes/policies
          name: policies
          readOnly: true
      volumes:
      - hostPath:
          path: /etc/kubernetes/policies
          type: DirectoryOrCreate
        name: policies
  2. audit-log-path — ara ki te kōnae rangitaki. Me uru atu ano te ara ki te mahi api-tūmau, no reira ka whakaahuatia e matou tona whakapuru i te ara ano:
      volumeMounts:
        - mountPath: /var/log/kube-audit
          name: logs
          readOnly: false
      volumes:
      - hostPath:
          path: /var/log/kube-audit
          type: DirectoryOrCreate
        name: logs
  3. audit-log-format — te whakatakotoranga rangitaki arotake. Ko te taunoa ko json, engari kei te waatea ano te whakatakotoranga tuhinga tuku iho (legacy).

Kaupapa Here Arotake

Inaianei mo te konae kua whakahuahia e whakaatu ana i te kaupapa here takiuru. Ko te kaupapa tuatahi o te kaupapa here kaute level, taumata takiuru. Ko enei e whai ake nei:

  • None - kaua e takiuru;
  • Metadata — takiuru tono metadata: kaiwhakamahi, wa tono, rauemi whainga (pod, mokowā ingoa, aha atu), momo mahi (verb), aha atu;
  • Request — takiuru metadata me te tinana tono;
  • RequestResponse — takiuru metadata, tinana tono me te tinana whakautu.

Ko nga taumata whakamutunga e rua (Request и RequestResponse) kaua e takiuru nga tono kaore i uru ki nga rauemi (whakauru ki nga url e kiia nei he rauemi kore).

Ka haere hoki nga tono katoa maha nga wahanga:

  • RequestReceived - te waahi ka tae mai te tono e te kaiwhakatikatika, kaore ano kia tukuna atu i te taha o te mekameka o nga kaitukatuka;
  • ResponseStarted — ka tukuna nga pane whakautu, engari i mua i te tukunga o te tinana whakautu. I hangaia mo nga patai roa (hei tauira, watch);
  • ResponseComplete — kua tukuna te tinana whakautu, karekau he korero e tukuna atu;
  • Panic — Ka hangaia nga kaupapa ina kitea he ahuatanga rerekee.

Hei peke i nga hikoinga ka taea e koe te whakamahi omitStages.

I roto i te konae kaupapa here, ka taea e taatau te whakaahua i nga waahanga maha me nga taumata takitaki rereke. Ko te ture whakarite tuatahi ka kitea i te whakaahuatanga kaupapa here ka whakamahia.

Ka aro turukihia e te kubelet daemon nga huringa i roto i te whakaaturanga me te whirihoranga api-server, a, ki te kitea etahi, ka whakaara ano i te ipu ki te api-server. Engari he korero nui: Ko nga huringa i roto i te konae kaupapa here ka warewarehia e tera. Whai muri i nga huringa ki te konae kaupapa here, me whakaara ano koe i te api-tūmau ma te ringa. I te mea kua timata te api-server hei putunga pateko, kapa kubectl delete e kore e meinga kia timata ano. Me mahi a ringa koe docker stop i runga i nga kube-masters, kua whakarereketia te kaupapa here kaute:

docker stop $(docker ps | grep k8s_kube-apiserver | awk '{print $1}')

I te wa e taea ai te arotake, he mea nui kia mahara ki tera ka piki ake te uta i runga i te kube-apiserver. Ina koa, ka piki ake te paunga mahara mo te penapena horopaki tono. Ka timata te takiuru i muri i te tukunga o te pane whakautu. Ka whakawhirinaki ano te kawenga ki te whirihoranga kaupapa here arotake.

He tauira kaupapa here

Me titiro ki te hanganga o nga konae kaupapa here ma te whakamahi tauira.

Anei he kōnae ngawari policyki te tuhi i nga mea katoa i te taumata Metadata:

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
- level: Metadata

I roto i te kaupapa here ka taea e koe te tautuhi i te rarangi o nga kaiwhakamahi (Users и ServiceAccounts) me nga roopu kaiwhakamahi. Hei tauira, penei ka warewarehia e matou nga kaiwhakamahi punaha, engari ka tuhia nga mea katoa ki te taumata Request:

apiVersion: audit.k8s.io/v1
kind: Policy
rules:
  - level: None
    userGroups:
      - "system:serviceaccounts"
      - "system:nodes"
    users:
      - "system:anonymous"
      - "system:apiserver"
      - "system:kube-controller-manager"
      - "system:kube-scheduler"
  - level: Request

Ka taea hoki te whakaahua i nga whaainga:

  • mokowā ingoa (namespaces);
  • Kupumahi (kupu mahi: get, update, delete me etahi atu);
  • rauemi (Rauemi, ara: pod, configmaps me etahi atu) me nga roopu rauemi (apiGroups).

Kia tupato! Ko nga rauemi me nga roopu rauemi (roopu API, ara ko apiGroups), me o raatau putanga kua whakauruhia ki roto i te roopu, ka taea te tiki ma te whakamahi i nga whakahau:

kubectl api-resources
kubectl api-versions

Ko te kaupapa here arotake e whai ake nei ka whakaratohia hei whakaaturanga o nga mahi pai i roto i Ko nga tuhinga a Alibaba Cloud:

apiVersion: audit.k8s.io/v1beta1
kind: Policy
# Не логировать стадию RequestReceived
omitStages:
  - "RequestReceived"
rules:
  # Не логировать события, считающиеся малозначительными и не опасными:
  - level: None
    users: ["system:kube-proxy"]
    verbs: ["watch"]
    resources:
      - group: "" # это api group с пустым именем, к которому относятся
                  # базовые ресурсы Kubernetes, называемые “core”
        resources: ["endpoints", "services"]
  - level: None
    users: ["system:unsecured"]
    namespaces: ["kube-system"]
    verbs: ["get"]
    resources:
      - group: "" # core
        resources: ["configmaps"]
  - level: None
    users: ["kubelet"]
    verbs: ["get"]
    resources:
      - group: "" # core
        resources: ["nodes"]
  - level: None
    userGroups: ["system:nodes"]
    verbs: ["get"]
    resources:
      - group: "" # core
        resources: ["nodes"]
  - level: None
    users:
      - system:kube-controller-manager
      - system:kube-scheduler
      - system:serviceaccount:kube-system:endpoint-controller
    verbs: ["get", "update"]
    namespaces: ["kube-system"]
    resources:
      - group: "" # core
        resources: ["endpoints"]
  - level: None
    users: ["system:apiserver"]
    verbs: ["get"]
    resources:
      - group: "" # core
        resources: ["namespaces"]
  # Не логировать обращения к read-only URLs:
  - level: None
    nonResourceURLs:
      - /healthz*
      - /version
      - /swagger*
  # Не логировать сообщения, относящиеся к типу ресурсов “события”:
  - level: None
    resources:
      - group: "" # core
        resources: ["events"]
  # Ресурсы типа Secret, ConfigMap и TokenReview могут содержать  секретные данные,
  # поэтому логируем только метаданные связанных с ними запросов
  - level: Metadata
    resources:
      - group: "" # core
        resources: ["secrets", "configmaps"]
      - group: authentication.k8s.io
        resources: ["tokenreviews"]
  # Действия типа get, list и watch могут быть ресурсоёмкими; не логируем их
  - level: Request
    verbs: ["get", "list", "watch"]
    resources:
      - group: "" # core
      - group: "admissionregistration.k8s.io"
      - group: "apps"
      - group: "authentication.k8s.io"
      - group: "authorization.k8s.io"
      - group: "autoscaling"
      - group: "batch"
      - group: "certificates.k8s.io"
      - group: "extensions"
      - group: "networking.k8s.io"
      - group: "policy"
      - group: "rbac.authorization.k8s.io"
      - group: "settings.k8s.io"
      - group: "storage.k8s.io"
  # Уровень логирования по умолчанию для стандартных ресурсов API
  - level: RequestResponse
    resources:
      - group: "" # core
      - group: "admissionregistration.k8s.io"
      - group: "apps"
      - group: "authentication.k8s.io"
      - group: "authorization.k8s.io"
      - group: "autoscaling"
      - group: "batch"
      - group: "certificates.k8s.io"
      - group: "extensions"
      - group: "networking.k8s.io"
      - group: "policy"
      - group: "rbac.authorization.k8s.io"
      - group: "settings.k8s.io"
      - group: "storage.k8s.io"
  # Уровень логирования по умолчанию для всех остальных запросов
  - level: Metadata

Ko tetahi atu tauira pai o te kaupapa here kaute kōtaha i whakamahia i roto i te GCE.

Kia tere te whakautu ki nga huihuinga arotake, ka taea whakaahuatia te matapae tukutuku. Kei roto tenei take tuhinga whaimana, Ka waiho e au ki waho o te waahi o tenei tuhinga.

Ngā putanga

Ko te tuhinga he tirohanga whanui mo nga tikanga haumaru taketake i roto i nga roopu Kubernetes, ka taea e koe te hanga i nga kaute kaiwhakamahi whaiaro, te wehe i o raatau mana, me te tuhi i a raatau mahi. Ko te tumanako ka whai hua ki te hunga e pa ana ki enei take i roto i te ariā, i te mahi ranei. Ka tūtohu ano ahau kia panuihia e koe te rarangi o etahi atu rauemi mo te kaupapa o te haumarutanga i Kubernetes, ka tukuna i roto i te "PS" - tera pea ka kitea e koe nga korero e tika ana mo nga raruraru e pa ana ki a koe.

PS

Pānuihia hoki i runga i ta maatau blog:

Source: will.com

Tāpiri i te kōrero