Kubernetes-แƒ˜แƒก แƒ›แƒ–แƒแƒ แƒ“แƒ˜ แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒฐแƒ”แƒ˜ แƒฐแƒแƒ‘แƒ !

แƒ–แƒแƒคแƒฎแƒฃแƒšแƒ˜แƒก แƒ‘แƒแƒšแƒแƒก แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒแƒ—, แƒ แƒแƒ› แƒ•แƒแƒ’แƒ แƒซแƒ”แƒšแƒ”แƒ‘แƒ— แƒ—แƒ”แƒ›แƒแƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ˜แƒขแƒ แƒ’แƒแƒ›แƒแƒ”แƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ‘แƒ˜แƒœแƒ แƒกแƒขแƒแƒขแƒ˜แƒ Stackoverflow-แƒ“แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ‘แƒก แƒแƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒจแƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒš แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒก แƒ˜แƒ•แƒœแƒ˜แƒกแƒ˜แƒก แƒ“แƒแƒกแƒแƒฌแƒงแƒ˜แƒกแƒจแƒ˜.

Kubernetes-แƒ˜แƒก แƒ›แƒ–แƒแƒ แƒ“แƒ˜ แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒ˜แƒกแƒ˜แƒแƒ›แƒแƒ•แƒœแƒ”แƒ— แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ!

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒ“แƒ แƒแƒก แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒ‘แƒ˜แƒก แƒแƒกแƒแƒ™แƒ˜ แƒ“แƒแƒแƒฎแƒš. แƒ”แƒฅแƒ•แƒกแƒ˜ แƒฌแƒšแƒ˜แƒกแƒ“แƒ แƒ‘แƒแƒšแƒ แƒแƒ แƒ˜ แƒฌแƒšแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜ แƒ›แƒ˜แƒกแƒ˜ แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒแƒ‘แƒ แƒ˜แƒ›แƒ“แƒ”แƒœแƒแƒ“ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ, แƒ แƒแƒ› แƒ˜แƒก แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒแƒ แƒ˜แƒก แƒ แƒ”แƒ˜แƒขแƒ˜แƒœแƒ’แƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒกแƒแƒงแƒ•แƒแƒ แƒ”แƒšแƒ˜ แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ”แƒ‘แƒ˜. แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒกแƒ˜ แƒฌแƒ”แƒšแƒก แƒ›แƒ”แƒกแƒแƒ›แƒ” แƒแƒ“แƒ’แƒ˜แƒšแƒ–แƒ”แƒ. แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—: Kubernetes แƒแƒ แƒ˜แƒก แƒžแƒšแƒแƒขแƒคแƒแƒ แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒฅแƒ›แƒœแƒ˜แƒšแƒ˜แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒกแƒแƒจแƒ•แƒ”แƒ‘แƒแƒ“ แƒ“แƒ แƒแƒ แƒ™แƒ”แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ“แƒแƒ˜แƒฌแƒงแƒ แƒ แƒแƒ’แƒแƒ แƒช แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ˜แƒ–แƒแƒ˜แƒœแƒ˜ แƒšแƒ˜แƒœแƒฃแƒฅแƒกแƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒ˜แƒ–แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก; แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ“แƒ˜แƒก 2007 แƒฌแƒšแƒ˜แƒ“แƒแƒœ แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ˜, แƒฎแƒแƒšแƒ 2002 แƒฌแƒšแƒ˜แƒ“แƒแƒœ โ€“ แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ˜. แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒ™แƒ˜แƒ“แƒ”แƒ• แƒฃแƒคแƒ แƒ แƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ˜ แƒ˜แƒงแƒ 2008 แƒฌแƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ’แƒแƒฎแƒ“แƒ LXCแƒ“แƒ Google-แƒ›แƒ แƒจแƒ”แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒจแƒ˜แƒ“แƒ แƒ™แƒแƒ แƒžแƒแƒ แƒแƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒ˜ แƒ”.แƒฌ แƒ‘แƒแƒ แƒ’แƒ”, แƒกแƒแƒ“แƒแƒช โ€žแƒงแƒ•แƒ”แƒšแƒ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ™แƒ”แƒ—แƒ“แƒ”แƒ‘แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒจแƒ˜โ€œ. แƒแƒฅแƒ”แƒ“แƒแƒœ แƒฉแƒ•แƒ”แƒœ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ›แƒ˜แƒ•แƒ˜แƒฌแƒ”แƒ•แƒ— 2013 แƒฌแƒšแƒแƒ›แƒ“แƒ”, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒจแƒ”แƒ“แƒ’แƒ Docker-แƒ˜แƒก แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒ“แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜ แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“ แƒ’แƒแƒฎแƒ“แƒ แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ แƒ›แƒแƒกแƒแƒ‘แƒ แƒ˜แƒ•แƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ. แƒ˜แƒ› แƒ“แƒ แƒแƒก แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒแƒ แƒ™แƒ”แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ˜แƒงแƒ แƒ›แƒ”แƒกแƒแƒกแƒ›แƒ˜แƒฃแƒฎแƒ”แƒ“แƒแƒ•แƒแƒ“ แƒ˜แƒ›แƒ˜แƒกแƒ, แƒ แƒแƒ› แƒ˜แƒก แƒแƒ  แƒ˜แƒงแƒ แƒซแƒแƒšแƒ˜แƒแƒœ แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜. Kubernetes แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ•แƒ˜แƒ“แƒ 2015 แƒฌแƒ”แƒšแƒก, แƒ แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒแƒช แƒ”แƒก แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ’แƒแƒฎแƒ“แƒ แƒ“แƒ” แƒคแƒแƒฅแƒขแƒ แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒ แƒ™แƒ”แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒคแƒ”แƒ แƒแƒจแƒ˜.

แƒ˜แƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ’แƒแƒ•แƒ˜แƒ’แƒแƒ—, แƒ แƒแƒขแƒแƒ› แƒแƒ แƒ˜แƒก Kubernetes แƒแƒกแƒ” แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜, แƒจแƒ”แƒ•แƒ”แƒชแƒแƒ“แƒแƒ— แƒ•แƒฃแƒžแƒแƒกแƒฃแƒฎแƒแƒ— แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ™แƒ˜แƒ—แƒฎแƒ•แƒแƒก. แƒ‘แƒแƒšแƒแƒก แƒ แƒแƒ“แƒ˜แƒก แƒจแƒ”แƒซแƒšแƒ”แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ›แƒ แƒจแƒ”แƒ—แƒแƒœแƒฎแƒ›แƒ“แƒœแƒ”แƒœ, แƒ แƒแƒ’แƒแƒ  แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒแƒœ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜? แƒ แƒแƒ›แƒ“แƒ”แƒœ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒ˜แƒชแƒœแƒแƒ‘แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ”แƒœ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ”แƒ‘แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒงแƒฃแƒ—แƒจแƒ˜? แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒ แƒ“แƒฆแƒ”แƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒกแƒแƒช แƒแƒ  แƒ”แƒกแƒ›แƒ˜แƒ— แƒ แƒแƒ’แƒแƒ  แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜? แƒแƒ› แƒ™แƒ˜แƒ—แƒฎแƒ•แƒ”แƒ‘แƒ–แƒ” แƒžแƒแƒกแƒฃแƒฎแƒ”แƒ‘แƒก แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒ’แƒแƒœแƒ•แƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒ—.

แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ, แƒ แƒแƒ’แƒแƒ แƒช YAML

แƒ›แƒกแƒแƒคแƒšแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ—แƒแƒฏแƒ˜แƒœแƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒค-แƒ›แƒ–แƒแƒ แƒ”แƒฃแƒšแƒ˜แƒ“แƒแƒœ Kubernetes-แƒ›แƒ“แƒ” แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒ“แƒ, แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ“แƒ˜แƒ“แƒ˜ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒ แƒ’แƒแƒ“แƒแƒกแƒ•แƒšแƒ โ€žแƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒ“แƒแƒœ แƒ แƒแƒ’แƒแƒ แƒช แƒ™แƒแƒ“แƒ˜แƒ“แƒแƒœโ€œ โ€žแƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ, แƒ แƒแƒ’แƒแƒ แƒช แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜โ€œ - แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒšแƒแƒ“, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ YAML. Kubernetes-แƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒžแƒแƒ“แƒ”แƒ‘แƒก, แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒš แƒ˜แƒœแƒกแƒขแƒแƒœแƒชแƒ˜แƒ”แƒ‘แƒก, แƒขแƒแƒ›แƒ”แƒ‘แƒก แƒ“แƒ แƒ.แƒจ., แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒแƒ“ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒแƒฆแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒ˜แƒงแƒแƒก YAML แƒคแƒแƒ˜แƒšแƒจแƒ˜. แฒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“:

apiVersion: v1
kind: Pod
metadata:
  name: site
  labels:
    app: web
spec:
  containers:
    - name: front-end
      image: nginx
      ports:
        - containerPort: 80

แƒ”แƒก แƒฎแƒ”แƒ“แƒ•แƒ แƒแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก DevOps แƒแƒœ SRE แƒžแƒ แƒแƒคแƒ”แƒกแƒ˜แƒแƒœแƒแƒšแƒ”แƒ‘แƒก แƒกแƒ แƒฃแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒฎแƒแƒขแƒแƒœ แƒ—แƒแƒ•แƒ˜แƒแƒœแƒ—แƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒแƒ  แƒ“แƒแƒฌแƒ”แƒ แƒแƒœ แƒ™แƒแƒ“แƒ˜ แƒ”แƒœแƒ”แƒ‘แƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Python แƒแƒœ Javascript.

แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ— แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒก แƒกแƒฎแƒ•แƒ แƒฃแƒžแƒ˜แƒ แƒแƒขแƒ”แƒกแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก:

  • GitOps แƒแƒœ Git แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜. แƒ”แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒ˜แƒœแƒแƒฎแƒแƒ— แƒงแƒ•แƒ”แƒšแƒ Kubernetes YAML แƒคแƒแƒ˜แƒšแƒ˜ git แƒกแƒแƒชแƒแƒ•แƒ”แƒ‘แƒจแƒ˜, แƒแƒกแƒ” แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ—แƒ•แƒแƒšแƒงแƒฃแƒ แƒ˜ แƒแƒ“แƒ”แƒ•แƒœแƒแƒ— แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ แƒแƒ“แƒ˜แƒก แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ, แƒ•แƒ˜แƒœ แƒ’แƒแƒแƒ™แƒ”แƒ—แƒ แƒ“แƒ แƒ แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒ. แƒ”แƒก แƒ–แƒ แƒ“แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒญแƒ•แƒ˜แƒ แƒ•แƒแƒšแƒแƒ‘แƒแƒก แƒ›แƒ—แƒ”แƒšแƒก แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ“แƒ แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒก แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒฃแƒš แƒ”แƒคแƒ”แƒฅแƒขแƒฃแƒ แƒแƒ‘แƒแƒก แƒ’แƒแƒฃแƒ แƒ™แƒ•แƒ”แƒ•แƒšแƒแƒ‘แƒ˜แƒก แƒแƒฆแƒ›แƒแƒคแƒฎแƒ•แƒ แƒ˜แƒก แƒ’แƒ–แƒ˜แƒ—, แƒ’แƒแƒœแƒกแƒแƒ™แƒฃแƒ—แƒ แƒ”แƒ‘แƒ˜แƒ— แƒ˜แƒฅ, แƒกแƒแƒ“แƒแƒช แƒ—แƒแƒœแƒแƒ›แƒจแƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ›แƒ แƒฃแƒœแƒ“แƒ แƒ”แƒซแƒ”แƒ‘แƒแƒœ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜. แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“, แƒฃแƒคแƒ แƒ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ Kubernetes-แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒจแƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒขแƒแƒœแƒ แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ˜แƒก แƒจแƒ”แƒ แƒฌแƒงแƒ›แƒ˜แƒ—.
  • แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒฃแƒ แƒแƒ‘แƒ. แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ, แƒ แƒแƒ’แƒแƒ แƒช YAML, แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒซแƒแƒšแƒ˜แƒแƒœ แƒแƒ“แƒ•แƒ˜แƒšแƒ˜ แƒฎแƒ“แƒ”แƒ‘แƒ Kubernetes-แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒจแƒ˜ แƒ”แƒ แƒ—แƒ˜ แƒแƒœ แƒแƒ แƒ˜ แƒœแƒแƒ›แƒ แƒ˜แƒก แƒจแƒ”แƒชแƒ•แƒšแƒ, แƒ แƒ˜แƒ—แƒแƒช แƒ˜แƒชแƒ•แƒšแƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ›แƒแƒกแƒจแƒขแƒแƒ‘แƒ˜แƒ แƒ”แƒ‘แƒ. Kubernetes แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ›แƒ”แƒฅแƒแƒœแƒ˜แƒ–แƒ›แƒก แƒฐแƒแƒ แƒ˜แƒ–แƒแƒœแƒขแƒแƒšแƒฃแƒ แƒ˜ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒ˜ แƒกแƒ™แƒแƒšแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒšแƒแƒ“ แƒ˜แƒ›แƒ˜แƒก แƒ“แƒแƒกแƒแƒ“แƒ’แƒ”แƒœแƒแƒ“, แƒ—แƒฃ แƒ แƒ แƒ›แƒ˜แƒœแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒ แƒ›แƒแƒฅแƒกแƒ˜แƒ›แƒแƒšแƒฃแƒ แƒ˜ แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒแƒ แƒกแƒแƒญแƒ˜แƒ แƒ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ“แƒแƒ‘แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒ“แƒแƒœแƒ˜แƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ“แƒแƒกแƒแƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒšแƒแƒ“. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒ—แƒฅแƒ•แƒ”แƒœ แƒ’แƒแƒœแƒแƒ—แƒแƒ•แƒกแƒ”แƒ— แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒขแƒ”แƒ•แƒแƒ“แƒแƒ‘แƒแƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒฃแƒ”แƒชแƒแƒ แƒ˜ แƒ–แƒ แƒ“แƒ˜แƒก แƒ’แƒแƒ›แƒ, แƒ›แƒแƒจแƒ˜แƒœ maxReplicas แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก 10-แƒ“แƒแƒœ 20-แƒ›แƒ“แƒ”:

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: myapp
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: myapp-deployment
  minReplicas: 1
  maxReplicas: 20
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50

  • แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒแƒ แƒ—แƒ•แƒ. YAML แƒจแƒ”แƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ Kubernetes-แƒจแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒ˜แƒ•แƒ—แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒคแƒแƒกแƒ”แƒ‘แƒšแƒแƒ“. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒกแƒแƒ–แƒ แƒฃแƒœแƒแƒ•แƒ˜ แƒ”แƒฎแƒ”แƒ‘แƒ แƒ—แƒฃ แƒแƒ แƒ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒแƒ แƒแƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒกแƒแƒฎแƒ˜แƒ—. แƒแƒ› แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ“แƒแƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒก แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒฎแƒ”แƒšแƒกแƒแƒฌแƒงแƒแƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒจแƒ”แƒฏแƒ˜แƒ‘แƒ แƒ˜, YAML/JSON แƒ•แƒแƒšแƒ˜แƒ“แƒแƒขแƒแƒ แƒ˜, แƒžแƒšแƒฃแƒก แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜แƒ— แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒแƒ’แƒ”แƒœแƒขแƒ˜, แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ•แƒแƒšแƒ˜แƒ“แƒแƒขแƒแƒ แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒก แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒ˜ แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ แƒแƒ  แƒ˜แƒซแƒšแƒ”แƒ•แƒ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒก แƒแƒ“แƒ›แƒ˜แƒœแƒ˜แƒกแƒขแƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒžแƒ แƒ˜แƒ•แƒ˜แƒšแƒ”แƒ’แƒ˜แƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก. แƒ—แƒฃ แƒ”แƒก แƒกแƒแƒญแƒ˜แƒ แƒแƒ, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒแƒœ แƒ›แƒแƒ แƒขแƒ˜แƒ•แƒ˜ แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ แƒ แƒ”แƒ’แƒ, แƒแƒ›แƒ’แƒ•แƒแƒ แƒแƒ“:

package main

deny[msg] {
  input.kind = "Deployment"
  not input.spec.template.spec.securityContext.runAsNonRoot = true
  msg = "Containers must not run as root"
}

  • แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ—แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒ˜แƒก แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ”แƒ‘แƒ˜. แƒ“แƒฆแƒ”แƒ•แƒแƒœแƒ“แƒ”แƒšแƒ˜ แƒ›แƒแƒฆแƒแƒšแƒ˜ แƒขแƒ”แƒฅแƒœแƒแƒšแƒแƒ’แƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ—แƒ•แƒแƒšแƒกแƒแƒฉแƒ˜แƒœแƒ แƒขแƒ”แƒœแƒ“แƒ”แƒœแƒชแƒ˜แƒ แƒแƒ แƒ˜แƒก แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒ แƒกแƒแƒฏแƒแƒ แƒ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ”แƒ‘แƒ–แƒ”. แƒ™แƒแƒ›แƒžแƒแƒœแƒ”แƒœแƒขแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ˜ Kubernetes แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒแƒซแƒšแƒ”แƒ•แƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒก แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒ˜แƒ แƒ“แƒ”แƒก แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ—แƒแƒœ, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒช แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒแƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒแƒก Kubernetes-แƒจแƒ˜ AWS-แƒ–แƒ” แƒ“แƒ แƒกแƒฃแƒ แƒก แƒแƒ› แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ›แƒŸแƒฆแƒแƒ•แƒœแƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—, แƒฆแƒ แƒฃแƒ‘แƒšแƒแƒ•แƒแƒœแƒ˜ แƒžแƒ แƒแƒ•แƒแƒ˜แƒ“แƒ”แƒ แƒ˜ แƒ”แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜. LoadBalancerแƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒฃแƒ แƒแƒ“ แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ แƒก แƒแƒ›แƒแƒ–แƒแƒœแƒ˜แƒก แƒ”แƒšแƒแƒกแƒขแƒ˜แƒฃแƒ แƒ˜ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒก แƒ‘แƒแƒšแƒแƒœแƒกแƒ”แƒ แƒ˜แƒขแƒ แƒ”แƒคแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒก แƒžแƒแƒ“แƒ”แƒ‘แƒ–แƒ”.

แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒแƒ“แƒแƒ‘แƒ

Kubernetes แƒซแƒแƒšแƒ˜แƒแƒœ แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒฃแƒงแƒ•แƒแƒ แƒ— แƒ˜แƒ’แƒ˜. แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ แƒžแƒแƒ“แƒ”แƒ‘แƒ˜, แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ, StatefulSets, แƒกแƒแƒ˜แƒ“แƒฃแƒ›แƒšแƒแƒ”แƒ‘แƒ”แƒ‘แƒ˜, ConfigMapsแƒ“แƒ แƒ.แƒจ. แƒ›แƒแƒ แƒ—แƒแƒšแƒ˜แƒ, แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒ“แƒ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒแƒ— แƒกแƒฎแƒ•แƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ แƒคแƒแƒ แƒ›แƒแƒจแƒ˜ แƒ›แƒแƒ แƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜.

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ—แƒฃ แƒ’แƒ•แƒ˜แƒœแƒ“แƒ แƒ’แƒแƒœแƒ•แƒกแƒแƒ–แƒฆแƒ•แƒ แƒแƒ— แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ CronTab, แƒ›แƒแƒจแƒ˜แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒแƒ™แƒ”แƒ—แƒแƒ— แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›:

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: crontabs.my.org
spec:
  group: my.org
  versions:
    - name: v1
      served: true
      storage: true
      Schema:
        openAPIV3Schema:
          type: object
          properties:
            spec:
              type: object
              properties:
                cronSpec:
                  type: string
                  pattern: '^(d+|*)(/d+)?(s+(d+|*)(/d+)?){4}$'
                replicas:
                  type: integer
                  minimum: 1
                  maximum: 10
  scope: Namespaced
  names:
    plural: crontabs
    singular: crontab
    kind: CronTab
    shortNames:
    - ct

แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ— แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒจแƒ”แƒ•แƒฅแƒ›แƒœแƒแƒ— CronTab แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›:

apiVersion: "my.org/v1"
kind: CronTab
metadata:
  name: my-cron-object
spec:
  cronSpec: "* * * * */5"
  image: my-cron-image
  replicas: 5

แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ•แƒแƒ แƒ˜แƒแƒœแƒขแƒ˜ Kubernetes-แƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ˜แƒก, แƒ แƒแƒ› แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒ“แƒแƒฌแƒ”แƒ แƒแƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜. แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒแƒ แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒชแƒ”แƒกแƒ˜ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก "แƒกแƒแƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ แƒฌแƒ แƒ”" แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ˜แƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒ˜แƒ แƒ”แƒ‘แƒ แƒ›แƒแƒแƒฎแƒ“แƒ˜แƒœแƒแƒก CRD-แƒ”แƒ‘แƒ˜แƒก (แƒกแƒแƒ‘แƒแƒŸแƒ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ แƒขแƒ”แƒ‘แƒ”แƒ‘แƒ˜) แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒแƒ•แƒขแƒแƒ›แƒแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒแƒก Kubernetes API-แƒกแƒ—แƒแƒœ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒชแƒ•แƒšแƒ˜แƒ—.

แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒฃแƒแƒ“แƒ•แƒ˜แƒšแƒ”แƒ‘แƒก แƒกแƒแƒ™แƒฃแƒ—แƒแƒ แƒ˜ แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒแƒก. แฒ›แƒแƒ— แƒจแƒแƒ แƒ˜แƒก - แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒฉแƒแƒ แƒฉแƒ แƒ“แƒ แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ SDK. แƒ”แƒก SDK แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒกแƒแƒคแƒฃแƒซแƒ•แƒ”แƒšแƒก, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒจแƒ”แƒฃแƒซแƒšแƒ˜แƒ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ“แƒแƒ˜แƒฌแƒงแƒแƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒก แƒจแƒ”แƒฅแƒ›แƒœแƒ. แƒ•แƒ—แƒฅแƒ•แƒแƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒ˜แƒฌแƒงแƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒ“แƒแƒœ แƒ›แƒกแƒ’แƒแƒ•แƒกแƒ˜ แƒ แƒแƒ›:

$ operator-sdk new my-operator --repo github.com/myuser/my-operator

แƒ”แƒก แƒฅแƒ›แƒœแƒ˜แƒก แƒงแƒ•แƒ”แƒšแƒ แƒฅแƒ•แƒแƒ‘แƒ˜แƒก แƒ™แƒแƒ“แƒก แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, YAML แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ Golang แƒ™แƒแƒ“แƒ˜แƒก แƒฉแƒแƒ—แƒ•แƒšแƒ˜แƒ—:

.
|____cmd
| |____manager
| | |____main.go
|____go.mod
|____deploy
| |____role.yaml
| |____role_binding.yaml
| |____service_account.yaml
| |____operator.yaml
|____tools.go
|____go.sum
|____.gitignore
|____version
| |____version.go
|____build
| |____bin
| | |____user_setup
| | |____entrypoint
| |____Dockerfile
|____pkg
| |____apis
| | |____apis.go
| |____controller
| | |____controller.go

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ›แƒแƒขแƒแƒ— แƒกแƒแƒญแƒ˜แƒ แƒ API-แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜, แƒแƒกแƒ”:

$ operator-sdk add api --api-version=myapp.com/v1alpha1 --kind=MyAppService

$ operator-sdk add controller --api-version=myapp.com/v1alpha1 --kind=MyAppService

แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, แƒกแƒแƒ‘แƒแƒšแƒแƒแƒ“, แƒจแƒ”แƒ™แƒ แƒ˜แƒ‘แƒ”แƒ— แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ“แƒ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ”แƒ— แƒ—แƒฅแƒ•แƒ”แƒœแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒ แƒ”แƒ”แƒกแƒขแƒ แƒจแƒ˜:

$ operator-sdk build your.container.registry/youruser/myapp-operator

แƒ—แƒฃ แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ›แƒ”แƒขแƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜ แƒกแƒฃแƒ แƒก, Go แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜ boilerplate แƒ™แƒแƒ“แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒ•แƒแƒšแƒแƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ”แƒ แƒ˜แƒก แƒกแƒžแƒ”แƒชแƒ˜แƒคแƒ˜แƒ™แƒ˜แƒก แƒจแƒ”แƒกแƒแƒชแƒ•แƒšแƒ”แƒšแƒแƒ“, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒจแƒ”แƒ˜แƒขแƒแƒœแƒแƒ— แƒชแƒ•แƒšแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒคแƒแƒ˜แƒšแƒจแƒ˜ controller.go.

แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒงแƒ•แƒ”แƒšแƒ’แƒแƒœ, แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒจแƒ”แƒฅแƒ›แƒœแƒแƒ— แƒ’แƒแƒœแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ“แƒ”แƒ™แƒšแƒแƒ แƒแƒชแƒ˜แƒฃแƒšแƒ˜ YAML แƒคแƒแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, Apache Kafka-แƒก แƒแƒžแƒ”แƒ แƒแƒขแƒแƒ แƒ˜ แƒ’แƒแƒœแƒ˜แƒกแƒแƒ–แƒฆแƒ•แƒ แƒ”แƒ‘แƒ แƒ“แƒแƒแƒฎแƒšแƒแƒ”แƒ‘แƒ˜แƒ— แƒแƒกแƒ”. แƒ›แƒแƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ˜แƒœแƒกแƒขแƒแƒšแƒ˜แƒ แƒแƒ— แƒ™แƒแƒคแƒ™แƒแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ Kubernetes-แƒ˜แƒก แƒ—แƒแƒ•แƒ–แƒ” แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—:

$ kubectl kudo install zookeeper
$ kubectl kudo install kafka

แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒ”แƒ— แƒกแƒฎแƒ•แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ—:

$ kubectl kudo install kafka --instance=my-kafka-name 
            -p ZOOKEEPER_URI=zk-zookeeper-0.zk-hs:2181 
            -p ZOOKEEPER_PATH=/my-path -p BROKER_CPUS=3000m 
            -p BROKER_COUNT=5 -p BROKER_MEM=4096m 
            -p DISK_SIZE=40Gi -p MIN_INSYNC_REPLICAS=3 
            -p NUM_NETWORK_THREADS=10 -p NUM_IO_THREADS=20

แƒ˜แƒœแƒแƒ•แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜

แƒ‘แƒแƒšแƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒฌแƒšแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, Kubernetes-แƒ˜แƒก แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ’แƒแƒ›แƒแƒจแƒ•แƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ’แƒแƒ›แƒแƒ“แƒ˜แƒก แƒงแƒแƒ•แƒ”แƒš แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒ—แƒ•แƒ”แƒจแƒ˜ - แƒแƒœแƒฃ แƒฌแƒ”แƒšแƒ˜แƒฌแƒแƒ“แƒจแƒ˜ แƒกแƒแƒ›แƒ˜แƒ“แƒแƒœ แƒแƒ—แƒฎ แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“ แƒ’แƒแƒ›แƒแƒชแƒ”แƒ›แƒแƒจแƒ˜. แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒš แƒ›แƒแƒ—แƒ’แƒแƒœแƒจแƒ˜ แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ˜แƒšแƒ˜ แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ แƒแƒแƒ“แƒ”แƒœแƒแƒ‘แƒ แƒแƒ  แƒ›แƒชแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ. แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, แƒแƒ› แƒ แƒ—แƒฃแƒš แƒ“แƒ แƒแƒกแƒแƒช แƒ™แƒ˜ แƒจแƒ”แƒœแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒœแƒ˜แƒจแƒœแƒ”แƒ‘แƒ˜ แƒแƒ  แƒแƒ แƒ˜แƒก - แƒœแƒแƒฎแƒ”แƒ—, แƒ แƒ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒแƒ แƒแƒฎแƒšแƒ Kubernetes แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜แƒก แƒแƒฅแƒขแƒ˜แƒ•แƒแƒ‘แƒ Github-แƒ–แƒ”.

แƒแƒฎแƒแƒšแƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒฃแƒคแƒ แƒ แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒแƒ“ แƒ›แƒแƒแƒฌแƒงแƒแƒ— แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒแƒ–แƒ”. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ˜แƒกแƒขแƒ”แƒ‘แƒ˜ แƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒœ แƒฃแƒคแƒ แƒ แƒ“แƒ˜แƒ“แƒ˜ แƒ™แƒแƒœแƒขแƒ แƒแƒšแƒ˜แƒ— แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒฃแƒจแƒฃแƒแƒšแƒแƒ“ แƒฌแƒแƒ แƒ›แƒแƒ”แƒ‘แƒแƒจแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒ˜แƒกแƒแƒก.

Community

Kubernetes-แƒ˜แƒก แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒแƒ‘แƒ˜แƒก แƒ™แƒ˜แƒ“แƒ”แƒ• แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒแƒกแƒžแƒ”แƒฅแƒขแƒ˜แƒ แƒ›แƒ˜แƒกแƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒซแƒšแƒ˜แƒ”แƒ แƒ”. 2015 แƒฌแƒ”แƒšแƒก, 1.0 แƒ•แƒ”แƒ แƒกแƒ˜แƒ˜แƒก แƒ›แƒ˜แƒฆแƒฌแƒ”แƒ•แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’, Kubernetes แƒ“แƒแƒคแƒ˜แƒœแƒแƒœแƒกแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ˜แƒงแƒ Cloud Native Computing Foundation.

แƒแƒกแƒ”แƒ•แƒ” แƒแƒ แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒ—แƒ”แƒ›แƒ”แƒ‘แƒ˜ GIS (แƒกแƒžแƒ”แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ˜แƒœแƒขแƒ”แƒ แƒ”แƒกแƒ—แƒ แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ˜) แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ Kubernetes-แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ แƒกแƒคแƒ”แƒ แƒแƒ–แƒ” แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒ–แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒ‘แƒ. แƒ”แƒก แƒฏแƒ’แƒฃแƒคแƒ”แƒ‘แƒ˜ แƒ›แƒฃแƒ“แƒ›แƒ˜แƒ•แƒแƒ“ แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ”แƒœ แƒแƒฎแƒแƒš แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒช Kubernetes-แƒ—แƒแƒœ แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒฃแƒคแƒ แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒก แƒ“แƒ แƒ›แƒแƒกแƒแƒฎแƒ”แƒ แƒฎแƒ”แƒ‘แƒ”แƒšแƒก แƒฎแƒ“แƒ˜แƒก.

Cloud Native Foundation แƒแƒกแƒ”แƒ•แƒ” แƒ›แƒแƒกแƒžแƒ˜แƒœแƒซแƒšแƒแƒ‘แƒก CloudNativeCon/KubeCon-แƒก, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฌแƒ”แƒ แƒ˜แƒก แƒ›แƒแƒ›แƒ”แƒœแƒขแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ›แƒกแƒแƒคแƒšแƒ˜แƒแƒจแƒ˜ แƒงแƒ•แƒ”แƒšแƒแƒ–แƒ” แƒ“แƒ˜แƒ“แƒ˜ แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒ™แƒแƒœแƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒฌแƒ”แƒšแƒ˜แƒฌแƒแƒ“แƒจแƒ˜ แƒกแƒแƒ›แƒฏแƒ”แƒ  แƒขแƒแƒ แƒ“แƒ”แƒ‘แƒ, แƒ˜แƒก แƒแƒ”แƒ แƒ—แƒ˜แƒแƒœแƒ”แƒ‘แƒก แƒแƒ—แƒแƒกแƒแƒ‘แƒ˜แƒ— แƒžแƒ แƒแƒคแƒ”แƒกแƒ˜แƒแƒœแƒแƒšแƒก, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒช แƒกแƒฃแƒ แƒ— Kubernetes-แƒ˜แƒก แƒ“แƒ แƒ›แƒ˜แƒกแƒ˜ แƒ”แƒ™แƒแƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒ˜แƒก แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒ, แƒแƒกแƒ”แƒ•แƒ” แƒแƒฎแƒแƒšแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒกแƒฌแƒแƒ•แƒšแƒ, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒงแƒแƒ•แƒ”แƒš แƒกแƒแƒ› แƒ—แƒ•แƒ”แƒจแƒ˜ แƒฉแƒœแƒ“แƒ”แƒ‘แƒ.

แƒฃแƒคแƒ แƒ แƒ›แƒ”แƒขแƒ˜แƒช, Cloud Native Foundation-แƒก แƒแƒฅแƒ•แƒก แƒขแƒ”แƒฅแƒœแƒ˜แƒ™แƒฃแƒ แƒ˜ แƒ–แƒ”แƒ“แƒแƒ›แƒฎแƒ”แƒ“แƒ•แƒ”แƒšแƒแƒ‘แƒ˜แƒก แƒ™แƒแƒ›แƒ˜แƒขแƒ”แƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช SIG-แƒ”แƒ‘แƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“ แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒแƒ•แƒก แƒแƒฎแƒแƒšแƒก แƒ“แƒ แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜ แƒฆแƒ แƒฃแƒ‘แƒšแƒ˜แƒก แƒ”แƒ™แƒแƒกแƒ˜แƒกแƒขแƒ”แƒ›แƒแƒ–แƒ” แƒแƒ แƒ˜แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒกแƒแƒฎแƒกแƒ แƒ”แƒ‘แƒ˜. แƒแƒ› แƒžแƒ แƒแƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒฃแƒ›แƒ”แƒขแƒ”แƒกแƒแƒ‘แƒ แƒฎแƒ”แƒšแƒก แƒฃแƒฌแƒงแƒแƒ‘แƒก Kubernetes-แƒ˜แƒก แƒซแƒšแƒ˜แƒ”แƒ แƒ˜ แƒ›แƒฎแƒแƒ แƒ”แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒฃแƒ›แƒฏแƒแƒ‘แƒ”แƒกแƒ”แƒ‘แƒแƒก.

แƒ“แƒ แƒ‘แƒแƒšแƒแƒก, แƒ›แƒ” แƒ›แƒฏแƒ”แƒ แƒ, แƒ แƒแƒ› Kubernetes แƒแƒ  แƒ˜แƒฅแƒœแƒ”แƒ‘แƒแƒ“แƒ แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒฃแƒšแƒ˜, แƒ แƒแƒ’แƒแƒ แƒช แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ›แƒ—แƒ”แƒšแƒ˜ แƒกแƒแƒ–แƒแƒ’แƒแƒ“แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ’แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒซแƒแƒšแƒ˜แƒกแƒฎแƒ›แƒ”แƒ•แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ”, แƒกแƒแƒ“แƒแƒช แƒฎแƒแƒšแƒฎแƒ˜ แƒ”แƒ แƒ—แƒแƒ“ แƒ˜แƒงแƒ แƒ˜แƒก แƒ—แƒแƒ•แƒก, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ›แƒแƒ•แƒ“แƒ แƒแƒฃแƒšแƒแƒ“ แƒ›แƒ˜แƒ”แƒกแƒแƒšแƒ›แƒ”แƒ‘แƒ แƒแƒฎแƒแƒšแƒฌแƒ•แƒ”แƒฃแƒšแƒ”แƒ‘แƒก.

แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜

แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒ›แƒ—แƒแƒ•แƒแƒ แƒ˜ แƒ’แƒแƒ›แƒแƒฌแƒ•แƒ”แƒ•แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒœแƒแƒช แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒก แƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒจแƒ˜ แƒ›แƒแƒฃแƒฌแƒ”แƒ•แƒ— แƒ’แƒแƒ›แƒ™แƒšแƒแƒ•แƒ”แƒ‘แƒ, แƒแƒ แƒ˜แƒก แƒ—แƒ•แƒ˜แƒ— แƒ™แƒแƒ“แƒ˜แƒก แƒ“แƒ”แƒขแƒแƒšแƒ”แƒ‘แƒ–แƒ” แƒคแƒแƒ™แƒฃแƒกแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ“แƒ แƒแƒ แƒ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒแƒ–แƒ”, แƒ แƒแƒ›แƒ”แƒšแƒจแƒ˜แƒช แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก. แƒ˜แƒก แƒแƒ™แƒ›แƒแƒงแƒแƒคแƒ˜แƒšแƒ”แƒ‘แƒก แƒแƒ› แƒขแƒ”แƒœแƒ“แƒ”แƒœแƒชแƒ˜แƒ”แƒ‘แƒก แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒแƒ แƒฅแƒ˜แƒขแƒ”แƒฅแƒขแƒฃแƒ แƒฃแƒšแƒ˜ แƒžแƒแƒ แƒแƒ“แƒ˜แƒ’แƒ›แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ“แƒฆแƒ”แƒก แƒ”แƒ แƒ—-แƒ”แƒ แƒ—แƒ˜ แƒฌแƒแƒ›แƒงแƒ•แƒแƒœแƒ˜แƒ. แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒฉแƒแƒ แƒฉแƒแƒ”แƒ‘แƒ˜ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก, แƒ›แƒแƒ’. แƒœแƒแƒขแƒ˜แƒคแƒ˜ ะธ OpenFaas, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก Kubernetes-แƒก แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ˜แƒกแƒ’แƒแƒœ แƒ˜แƒœแƒคแƒ แƒแƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ˜แƒก แƒแƒ‘แƒกแƒขแƒ แƒแƒฅแƒชแƒ˜แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก.

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฉแƒ•แƒ”แƒœ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ”แƒกแƒ˜แƒก แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒ›แƒ“แƒ’แƒแƒ›แƒแƒ แƒ”แƒแƒ‘แƒ˜แƒก แƒ–แƒ”แƒ“แƒแƒžแƒ˜แƒ แƒ˜ แƒ’แƒแƒ•แƒคแƒฎแƒ”แƒ™แƒ˜แƒ— - แƒคแƒแƒฅแƒขแƒแƒ‘แƒ แƒ˜แƒ•แƒแƒ“, แƒ”แƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒแƒ˜แƒกแƒ‘แƒ”แƒ แƒ’แƒ˜แƒก แƒ›แƒฌแƒ•แƒ”แƒ แƒ•แƒแƒšแƒ˜แƒ. Kubernetes แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒšแƒ”แƒ‘แƒก แƒแƒฅแƒ•แƒ— แƒกแƒฎแƒ•แƒ แƒ›แƒ แƒแƒ•แƒแƒšแƒ˜ แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ.

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ