Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

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

แƒกแƒฌแƒ แƒแƒคแƒ˜ แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ Kubernetes แƒฅแƒกแƒ”แƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒจแƒ” แƒจแƒ”แƒฃแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. แƒฉแƒ•แƒ”แƒœ แƒฃแƒ™แƒ•แƒ” แƒ’แƒแƒ›แƒแƒ•แƒแƒฅแƒ•แƒ”แƒงแƒœแƒ”แƒ— แƒ›แƒแƒกแƒแƒšแƒ”แƒ‘แƒ˜ แƒ›แƒแƒ— แƒกแƒแƒคแƒฃแƒซแƒ•แƒšแƒ”แƒ‘แƒ–แƒ”: โ€แƒ˜แƒšแƒฃแƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ’แƒ–แƒแƒ›แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜ แƒฅแƒกแƒ”แƒšแƒจแƒ˜ Kubernetes-แƒจแƒ˜"แƒ“แƒ"แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ Kubernetes แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒแƒจแƒ˜ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒžแƒ แƒแƒคแƒ”แƒกแƒ˜แƒแƒœแƒแƒšแƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก".

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ™แƒแƒœแƒขแƒ”แƒฅแƒกแƒขแƒจแƒ˜, แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒแƒœแƒ˜แƒ แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒแƒก, แƒ แƒแƒ› K8s แƒแƒ  แƒแƒ แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒกแƒ›แƒ’แƒ”แƒ‘แƒ”แƒšแƒ˜ แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ”แƒ‘แƒกแƒ แƒ“แƒ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒ–แƒ”: แƒแƒ›แƒ˜แƒกแƒแƒ—แƒ•แƒ˜แƒก แƒกแƒฎแƒ•แƒแƒ“แƒแƒกแƒฎแƒ•แƒ CNI แƒ“แƒแƒœแƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜ (แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜แƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜). แƒ›แƒ”แƒขแƒ˜ แƒแƒ› แƒ™แƒแƒœแƒชแƒ”แƒคแƒชแƒ˜แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒฉแƒ•แƒ”แƒœ แƒ›แƒแƒ—แƒแƒช แƒ›แƒ˜แƒ—แƒฎแƒ แƒ”แƒก.

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

แƒ“แƒ แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ›แƒ”แƒœแƒ”แƒฏแƒ›แƒ”แƒœแƒขแƒ˜แƒก แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ›แƒแƒฌแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ โ€žแƒ’แƒแƒ แƒ”แƒ›แƒโ€œ. NetworkPolicy API. แƒ”แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ’แƒแƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒจแƒ”แƒ แƒฉแƒ”แƒฃแƒš แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒ–แƒ”, แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก แƒฌแƒ”แƒกแƒ”แƒ‘แƒก แƒ”แƒ แƒ—แƒ˜ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ˜แƒ“แƒแƒœ แƒ›แƒ”แƒแƒ แƒ”แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒ˜แƒคแƒ”แƒ แƒ”แƒœแƒชแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒ–แƒœแƒ˜แƒ—. แƒ˜แƒก แƒแƒกแƒ”แƒ•แƒ” แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒแƒก แƒ’แƒแƒซแƒšแƒ”แƒ•แƒ— แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒ— แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒžแƒแƒ“แƒ”แƒ‘แƒก, แƒ’แƒแƒ แƒ”แƒ›แƒแƒก (แƒกแƒแƒฎแƒ”แƒšแƒ—แƒ แƒกแƒ˜แƒ•แƒ แƒชแƒ”แƒ”แƒ‘แƒก) แƒแƒœ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ‘แƒšแƒแƒ™แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: test-network-policy
  namespace: default
spec:
  podSelector:
    matchLabels:
      role: db
  policyTypes:
  - Ingress
  - Egress
  ingress:
  - from:
    - ipBlock:
        cidr: 172.17.0.0/16
        except:
        - 172.17.1.0/24
    - namespaceSelector:
        matchLabels:
          project: myproject
    - podSelector:
        matchLabels:
          role: frontend
    ports:
    - protocol: TCP
      port: 6379
  egress:
  - to:
    - ipBlock:
        cidr: 10.0.0.0/24
    ports:
    - protocol: TCP
      port: 5978

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

แƒšแƒแƒ’แƒ˜แƒ™แƒฃแƒ แƒ˜แƒ, แƒ แƒแƒ› แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒก แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก 2 แƒขแƒ˜แƒžแƒ˜: แƒžแƒแƒ“แƒจแƒ˜ แƒจแƒ”แƒกแƒ•แƒšแƒ (Ingress) แƒ“แƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ’แƒแƒ›แƒแƒกแƒ•แƒšแƒ (Egress).

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

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

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

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

  podSelector: {}
  ingress: []
  policyTypes:
  - Ingress

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

  podSelector: {}
  ingress:
  - {}
  policyTypes:
  - Ingress

แƒแƒœแƒแƒšแƒแƒ’แƒ˜แƒฃแƒ แƒแƒ“ แƒ’แƒแƒ›แƒแƒ•แƒแƒšแƒ˜:

  podSelector: {}
  policyTypes:
  - Egress

- แƒ แƒแƒ› แƒ’แƒแƒ›แƒแƒ แƒ—แƒ. แƒ“แƒ แƒแƒ˜, แƒ แƒ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก:

  podSelector: {}
  egress:
  - {}
  policyTypes:
  - Egress

แƒ แƒแƒช แƒจแƒ”แƒ”แƒฎแƒ”แƒ‘แƒ CNI แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒแƒ แƒฉแƒ”แƒ•แƒแƒœแƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒแƒฆแƒกแƒแƒœแƒ˜แƒจแƒœแƒแƒ•แƒ˜แƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒ แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒแƒ  แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒฎแƒแƒ แƒก NetworkPolicy-แƒก. แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒฃแƒ™แƒ•แƒ” แƒœแƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ›แƒ แƒคแƒšแƒแƒœแƒ”แƒšแƒ›แƒ แƒแƒ  แƒ˜แƒชแƒ˜แƒก แƒ แƒแƒ’แƒแƒ  แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒžแƒ˜แƒ แƒ“แƒแƒžแƒ˜แƒ  แƒœแƒแƒ—แƒฅแƒ•แƒแƒ›แƒ˜แƒ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ  แƒกแƒแƒชแƒแƒ•แƒจแƒ˜. แƒ˜แƒฅ แƒแƒšแƒขแƒ”แƒ แƒœแƒแƒขแƒ˜แƒ•แƒแƒช แƒแƒ แƒ˜แƒก แƒœแƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜ - แƒฆแƒ˜แƒ แƒ™แƒแƒ“แƒ˜แƒก แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒ™แƒแƒšแƒ˜แƒ™แƒ, แƒ แƒแƒช แƒ›แƒœแƒ˜แƒจแƒ•แƒœแƒ”แƒšแƒแƒ•แƒœแƒแƒ“ แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒก Kubernetes API-แƒ”แƒ‘แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒš แƒ™แƒแƒ›แƒžแƒšแƒ”แƒฅแƒขแƒก แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—.

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

Calico-แƒก แƒ’แƒแƒชแƒœแƒแƒ‘แƒ: แƒ—แƒ”แƒแƒ แƒ˜แƒ

Calico แƒ›แƒแƒ“แƒฃแƒšแƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก Flannel-แƒ—แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ’แƒ แƒแƒชแƒ˜แƒแƒจแƒ˜ (แƒฅแƒ•แƒ”แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ Canal) แƒแƒœ แƒ“แƒแƒ›แƒแƒฃแƒ™แƒ˜แƒ“แƒ”แƒ‘แƒšแƒแƒ“, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก แƒ แƒแƒ’แƒแƒ แƒช แƒฅแƒกแƒ”แƒšแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒแƒก, แƒแƒกแƒ”แƒ•แƒ” แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒ˜แƒก แƒ›แƒแƒ แƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒก.

แƒ แƒ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ”แƒ‘แƒก แƒ˜แƒซแƒšแƒ”แƒ•แƒ K8s "boxed" แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒก แƒ“แƒ Calico-แƒก API แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ?

แƒแƒ˜, แƒ แƒ แƒแƒ แƒ˜แƒก แƒฉแƒแƒจแƒ”แƒœแƒ”แƒ‘แƒฃแƒšแƒ˜ NetworkPolicy-แƒจแƒ˜:

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

แƒแƒ˜, แƒ แƒแƒ’แƒแƒ  แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒก Calico แƒแƒ› แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก:

  • แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒฃแƒš แƒ˜แƒฅแƒœแƒแƒก แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ  แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ–แƒ”: pod, แƒ™แƒแƒœแƒขแƒ”แƒ˜แƒœแƒ”แƒ แƒ˜, แƒ•แƒ˜แƒ แƒขแƒฃแƒแƒšแƒฃแƒ แƒ˜ แƒ›แƒแƒœแƒฅแƒแƒœแƒ แƒแƒœ แƒ˜แƒœแƒขแƒ”แƒ แƒคแƒ”แƒ˜แƒกแƒ˜;
  • แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒ“แƒ”แƒก แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒ›แƒแƒฅแƒ›แƒ”แƒ“แƒ”แƒ‘แƒแƒก (แƒแƒ™แƒ แƒซแƒแƒšแƒ•แƒ, แƒœแƒ”แƒ‘แƒแƒ แƒ—แƒ•แƒ, แƒฎแƒ”-แƒขแƒงแƒ˜แƒก แƒแƒฆแƒ”แƒ‘แƒ);
  • แƒฌแƒ”แƒกแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ›แƒ˜แƒ–แƒœแƒ” แƒแƒœ แƒฌแƒงแƒแƒ แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒ˜แƒงแƒแƒก แƒžแƒแƒ แƒขแƒ˜, แƒžแƒแƒ แƒขแƒ”แƒ‘แƒ˜แƒก แƒ“แƒ˜แƒแƒžแƒแƒ–แƒแƒœแƒ˜, แƒžแƒ แƒแƒขแƒแƒ™แƒแƒšแƒ”แƒ‘แƒ˜, HTTP แƒแƒœ ICMP แƒแƒขแƒ แƒ˜แƒ‘แƒฃแƒขแƒ”แƒ‘แƒ˜, IP แƒแƒœ แƒฅแƒ•แƒ”แƒฅแƒกแƒ”แƒšแƒ˜ (แƒ›แƒ”-4 แƒแƒœ แƒ›แƒ”-6 แƒ—แƒแƒแƒ‘แƒ), แƒœแƒ”แƒ‘แƒ˜แƒกแƒ›แƒ˜แƒ”แƒ แƒ˜ แƒกแƒ”แƒšแƒ”แƒฅแƒขแƒแƒ แƒ˜ (แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜, แƒฐแƒแƒกแƒขแƒ”แƒ‘แƒ˜, แƒ’แƒแƒ แƒ”แƒ›แƒ);
  • แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒแƒ— แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ•แƒšแƒ DNAT แƒžแƒแƒ แƒแƒ›แƒ”แƒขแƒ แƒ”แƒ‘แƒ˜แƒก แƒ“แƒ แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ“แƒแƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—.

แƒžแƒ˜แƒ แƒ•แƒ”แƒšแƒ˜ แƒ•แƒแƒšแƒ“แƒ”แƒ‘แƒฃแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜ GitHub-แƒ–แƒ” Calico-แƒก แƒกแƒแƒชแƒแƒ•แƒจแƒ˜ แƒ—แƒแƒ แƒ˜แƒฆแƒ“แƒ”แƒ‘แƒ 2016 แƒฌแƒšแƒ˜แƒก แƒ˜แƒ•แƒšแƒ˜แƒกแƒ˜แƒ—, แƒฎแƒแƒšแƒ แƒ”แƒ แƒ—แƒ˜ แƒฌแƒšแƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒžแƒ แƒแƒ”แƒฅแƒขแƒ›แƒ แƒ“แƒแƒ˜แƒ™แƒแƒ•แƒ แƒฌแƒแƒ›แƒงแƒ•แƒแƒœแƒ˜ แƒžแƒแƒ–แƒ˜แƒชแƒ˜แƒ Kubernetes แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒแƒ แƒ’แƒแƒœแƒ˜แƒ–แƒ”แƒ‘แƒแƒจแƒ˜ - แƒแƒ›แƒแƒก แƒ›แƒแƒฌแƒ›แƒแƒ‘แƒก, แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒ™แƒ•แƒšแƒ”แƒ•แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜, แƒ“แƒ˜แƒ แƒ˜แƒŸแƒแƒ แƒแƒ‘แƒ˜แƒ— The New Stack:

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ‘แƒ”แƒ•แƒ แƒ˜ แƒ›แƒกแƒฎแƒ•แƒ˜แƒšแƒ˜ แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ K8-แƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Amazon EKS, Azure AKS, Google GKE แƒ“แƒ แƒกแƒฎแƒ•แƒ”แƒ‘แƒ›แƒ แƒ“แƒแƒ˜แƒฌแƒงแƒ”แƒก แƒ›แƒ˜แƒกแƒ˜ แƒ แƒ”แƒ™แƒแƒ›แƒ”แƒœแƒ“แƒแƒชแƒ˜แƒ แƒ’แƒแƒ›แƒแƒกแƒแƒงแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ“.

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

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒžแƒ แƒแƒ”แƒฅแƒขแƒ˜ แƒซแƒแƒšแƒ˜แƒแƒœ แƒกแƒฌแƒ แƒแƒคแƒแƒ“ แƒ•แƒ˜แƒ—แƒแƒ แƒ“แƒ”แƒ‘แƒ, แƒ˜แƒก แƒ›แƒฎแƒแƒ แƒก แƒฃแƒญแƒ”แƒ แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒแƒก แƒžแƒแƒžแƒฃแƒšแƒแƒ แƒฃแƒš แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒจแƒ˜, แƒ›แƒแƒ แƒ—แƒฃแƒšแƒ˜ K8s, OpenShift, OpenStack, แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ Calico-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—. แƒ™แƒแƒžแƒกแƒ˜, แƒแƒ แƒ˜แƒก แƒชแƒœแƒแƒ‘แƒ”แƒ‘แƒ˜ Service Mesh แƒฅแƒกแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒ›แƒจแƒ”แƒœแƒ”แƒ‘แƒšแƒแƒ‘แƒแƒ–แƒ” (แƒแƒฅ แƒแƒ แƒ˜แƒก แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒ˜แƒกแƒขแƒ˜แƒแƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“).

แƒ˜แƒ•แƒแƒ แƒฏแƒ˜แƒจแƒ” Calico-แƒกแƒ—แƒแƒœ แƒ”แƒ แƒ—แƒแƒ“

แƒ•แƒแƒœแƒ˜แƒšแƒ˜แƒก Kubernetes-แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒก แƒ–แƒแƒ’แƒแƒ“ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, CNI-แƒ˜แƒก แƒ“แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒคแƒแƒ˜แƒšแƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒ›แƒ“แƒ” calico.yaml, แƒ’แƒแƒ“แƒ›แƒแƒฌแƒ”แƒ แƒ˜แƒšแƒ˜ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒ˜แƒขแƒ˜แƒ“แƒแƒœ, แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— kubectl apply -f.

แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ›แƒแƒ“แƒฃแƒšแƒ˜แƒก แƒแƒ›แƒŸแƒแƒ›แƒ˜แƒœแƒ“แƒ”แƒšแƒ˜ แƒ•แƒ”แƒ แƒกแƒ˜แƒ แƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒแƒ“แƒ˜แƒ Kubernetes-แƒ˜แƒก แƒฃแƒแƒฎแƒšแƒ”แƒก 2-3 แƒ•แƒ”แƒ แƒกแƒ˜แƒแƒกแƒ—แƒแƒœ: แƒซแƒ•แƒ”แƒš แƒ•แƒ”แƒ แƒกแƒ˜แƒ”แƒ‘แƒจแƒ˜ แƒแƒžแƒ”แƒ แƒแƒชแƒ˜แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ˜ แƒ“แƒ แƒแƒ  แƒแƒ แƒ˜แƒก แƒ’แƒแƒ แƒแƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜. แƒ“แƒ”แƒ•แƒ”แƒšแƒแƒžแƒ”แƒ แƒ”แƒ‘แƒ˜แƒก แƒ—แƒฅแƒ›แƒ˜แƒ—, Calico แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก Linux-แƒ˜แƒก แƒ‘แƒ˜แƒ แƒ—แƒ•แƒ”แƒ‘แƒ–แƒ” 3.10-แƒ–แƒ” แƒ›แƒแƒฆแƒšแƒ, แƒ’แƒแƒจแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜ CentOS 7, Ubuntu 16 แƒแƒœ Debian 8, iptables แƒแƒœ IPVS-แƒ˜แƒก แƒ—แƒแƒ•แƒ–แƒ”.

แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜

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

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒœแƒšแƒแƒ’แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ 2 แƒ•แƒ”แƒ‘ แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ: Node.js-แƒจแƒ˜ แƒ“แƒ PHP-แƒจแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ—แƒแƒ’แƒแƒœ แƒ”แƒ แƒ—แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก Redis-แƒก. PHP-แƒ“แƒแƒœ Redis-แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒ“แƒแƒกแƒแƒ‘แƒšแƒแƒ™แƒแƒ“, Node.js-แƒ—แƒแƒœ แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ˜แƒก แƒจแƒ”แƒกแƒแƒœแƒแƒ แƒฉแƒฃแƒœแƒ”แƒ‘แƒšแƒแƒ“, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒ:

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-redis-nodejs
spec:
  podSelector:
    matchLabels:
      service: redis
  ingress:
  - from:
    - podSelector:
        matchLabels:
          service: nodejs
    ports:
    - protocol: TCP
      port: 6379

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

แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒก apiVersion Kubernetes out of box, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ แƒแƒคแƒ”แƒ แƒ˜ แƒ’แƒ˜แƒจแƒšแƒ˜แƒ— แƒฎแƒ”แƒšแƒก แƒ›แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒแƒจแƒ˜ แƒแƒ›แƒแƒ•แƒ” แƒกแƒแƒฎแƒ”แƒšแƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒ แƒ”แƒกแƒฃแƒ แƒกแƒ˜ Calico-แƒก แƒ›แƒ˜แƒฌแƒแƒ“แƒ”แƒ‘แƒ˜แƒ“แƒแƒœ. แƒ˜แƒฅ แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒฃแƒคแƒ แƒ แƒ“แƒ”แƒขแƒแƒšแƒฃแƒ แƒ˜แƒ, แƒแƒกแƒ” แƒ แƒแƒ› แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜แƒก แƒ’แƒแƒ“แƒแƒฌแƒ”แƒ แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒคแƒแƒ แƒ›แƒ˜แƒ—:

apiVersion: crd.projectcalico.org/v1
kind: NetworkPolicy
metadata:
  name: allow-redis-nodejs
spec:
  selector: service == 'redis'
  ingress:
  - action: Allow
    protocol: TCP
    source:
      selector: service == 'nodejs'
    destination:
      ports:
      - 6379

แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜ แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜ แƒ แƒ”แƒ’แƒฃแƒšแƒแƒ แƒฃแƒšแƒ˜ NetworkPolicy API-แƒ˜แƒ— แƒ›แƒ—แƒ”แƒšแƒ˜ แƒขแƒ แƒแƒคแƒ˜แƒ™แƒ˜แƒก แƒ“แƒแƒจแƒ•แƒ”แƒ‘แƒ˜แƒก แƒแƒœ แƒฃแƒแƒ แƒงแƒแƒคแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒจแƒ”แƒ˜แƒชแƒแƒ•แƒก แƒ™แƒแƒœแƒกแƒขแƒ แƒฃแƒฅแƒขแƒ”แƒ‘แƒก แƒคแƒ แƒฉแƒฎแƒ˜แƒšแƒ”แƒ‘แƒ˜แƒ—, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒซแƒœแƒ”แƒšแƒแƒ“ แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒ“แƒแƒกแƒแƒ›แƒแƒฎแƒกแƒแƒ•แƒ แƒ”แƒ‘แƒ”แƒšแƒ˜แƒ. Calico-แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, firewall-แƒ˜แƒก แƒฌแƒ”แƒกแƒ˜แƒก แƒšแƒแƒ’แƒ˜แƒ™แƒ˜แƒก แƒกแƒแƒžแƒ˜แƒ แƒ˜แƒกแƒžแƒ˜แƒ แƒแƒ“ แƒจแƒ”แƒกแƒแƒชแƒ•แƒšแƒ”แƒšแƒแƒ“, แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒจแƒ”แƒชแƒ•แƒแƒšแƒ”แƒ— action: Allow on action: Deny.

แƒ˜แƒ–แƒแƒšแƒแƒชแƒ˜แƒ แƒ’แƒแƒ แƒ”แƒ›แƒแƒ—แƒ˜

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

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒžแƒ แƒแƒ›แƒ”แƒ—แƒ”, แƒ แƒแƒ’แƒแƒ แƒช แƒฌแƒ”แƒกแƒ˜, แƒ›แƒแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒชแƒแƒšแƒ™แƒ” แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ’แƒแƒ แƒ”แƒ›แƒแƒจแƒ˜ - แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒ”แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒกแƒแƒฎแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒกแƒ˜แƒ•แƒ แƒชแƒ”:

apiVersion: v1
kind: Namespace
metadata:
  labels:
    module: prometheus
  name: kube-prometheus

แƒกแƒแƒ•แƒ”แƒšแƒ” metadata.labels แƒ”แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒ˜แƒ—แƒ˜ แƒแƒ  แƒแƒฆแƒ›แƒแƒฉแƒœแƒ“แƒ. แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒ, namespaceSelector (แƒ˜แƒกแƒ”แƒ•แƒ”, แƒ แƒแƒ’แƒแƒ แƒช podSelector) แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ”แƒขแƒ˜แƒ™แƒ”แƒขแƒ”แƒ‘แƒ˜แƒ—. แƒ›แƒแƒจแƒแƒกแƒแƒ“แƒแƒ›แƒ”, แƒ˜แƒ›แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ› แƒ›แƒ”แƒขแƒ แƒ˜แƒ™แƒ แƒแƒ˜แƒฆแƒแƒก แƒงแƒ•แƒ”แƒšแƒ แƒžแƒแƒ“แƒ˜แƒ“แƒแƒœ แƒ™แƒแƒœแƒ™แƒ แƒ”แƒขแƒฃแƒš แƒžแƒแƒ แƒขแƒ–แƒ”, แƒ—แƒฅแƒ•แƒ”แƒœ แƒ›แƒแƒ’แƒ˜แƒฌแƒ”แƒ•แƒ— แƒ แƒแƒ˜แƒ›แƒ” แƒกแƒแƒฎแƒ˜แƒก แƒšแƒ”แƒ˜แƒ‘แƒšแƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ (แƒแƒœ แƒฃแƒ™แƒ•แƒ” แƒแƒ แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ“แƒแƒœ) แƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ— แƒ˜แƒกแƒ”แƒ—แƒ˜ แƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒแƒชแƒ˜แƒ, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-metrics-prom
spec:
  podSelector: {}
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          module: prometheus
    ports:
    - protocol: TCP
      port: 9100

แƒ“แƒ แƒ—แƒฃ แƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ— Calico แƒžแƒแƒšแƒ˜แƒขแƒ˜แƒ™แƒแƒก, แƒกแƒ˜แƒœแƒขแƒแƒฅแƒกแƒ˜ แƒแƒกแƒ”แƒ—แƒ˜ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ:

apiVersion: crd.projectcalico.org/v1
kind: NetworkPolicy
metadata:
  name: allow-metrics-prom
spec:
  ingress:
  - action: Allow
    protocol: TCP
    source:
      namespaceSelector: module == 'prometheus'
    destination:
      ports:
      - 9100

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

แƒกแƒแƒฃแƒ™แƒ”แƒ—แƒ”แƒกแƒ แƒžแƒ แƒแƒฅแƒขแƒ˜แƒ™แƒ, Calico-แƒก แƒจแƒ”แƒ›แƒฅแƒ›แƒœแƒ”แƒšแƒ”แƒ‘แƒ˜แƒก แƒแƒ–แƒ แƒ˜แƒ—, แƒแƒ แƒ˜แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒ โ€žแƒ“แƒแƒ‘แƒšแƒแƒ™แƒ” แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ“แƒ แƒแƒจแƒ™แƒแƒ แƒแƒ“ แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ˜ แƒ˜แƒก, แƒ แƒแƒช แƒ’แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒโ€œ, แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜ แƒแƒคแƒ˜แƒชแƒ˜แƒแƒšแƒฃแƒ แƒ˜ แƒ“แƒแƒ™แƒฃแƒ›แƒ”แƒœแƒขแƒแƒชแƒ˜แƒ (แƒกแƒฎแƒ•แƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒฐแƒงแƒ•แƒ”แƒ‘แƒ˜แƒแƒœ แƒ›แƒกแƒ’แƒแƒ•แƒก แƒ›แƒ˜แƒ“แƒ’แƒแƒ›แƒแƒก - แƒ™แƒ”แƒ แƒซแƒแƒ“, แƒฅ แƒฃแƒ™แƒ•แƒ” แƒœแƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ).

แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ—แƒ˜ Calico แƒแƒ‘แƒ˜แƒ”แƒฅแƒขแƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ

แƒจแƒ”แƒ’แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒ—, แƒ แƒแƒ› Calico API-แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒœแƒแƒ™แƒ แƒ”แƒ‘แƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ— แƒ—แƒฅแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ“แƒแƒแƒ แƒ”แƒ’แƒฃแƒšแƒ˜แƒ แƒแƒ— แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒแƒ‘แƒ, แƒแƒ  แƒจแƒ”แƒ›แƒแƒ˜แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒ แƒ›แƒฎแƒแƒšแƒแƒ“ แƒžแƒแƒ“แƒ”แƒ‘แƒ˜แƒ—. แƒจแƒ”แƒ›แƒ“แƒ”แƒ’ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒจแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ— GlobalNetworkPolicy ICMP แƒ›แƒแƒ—แƒฎแƒแƒ•แƒœแƒ”แƒ‘แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ’แƒแƒ“แƒแƒชแƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒšแƒแƒ‘แƒ แƒ“แƒแƒฎแƒฃแƒ แƒฃแƒšแƒ˜แƒ (แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒแƒ“, แƒžแƒ˜แƒœแƒ’แƒ”แƒ‘แƒ˜ แƒžแƒแƒ“แƒ˜แƒ“แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒจแƒ˜, แƒžแƒแƒ“แƒ”แƒ‘แƒก แƒจแƒแƒ แƒ˜แƒก แƒแƒœ แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒ“แƒแƒœ IP แƒžแƒแƒ“แƒจแƒ˜):

apiVersion: crd.projectcalico.org/v1
kind: GlobalNetworkPolicy
metadata:
  name: block-icmp
spec:
  order: 200
  selector: all()
  types:
  - Ingress
  - Egress
  ingress:
  - action: Deny
    protocol: ICMP
  egress:
  - action: Deny
    protocol: ICMP

แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒš แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒฏแƒ”แƒ  แƒ™แƒ˜แƒ“แƒ”แƒ• แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒšแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ”แƒ‘แƒ˜แƒก แƒ”แƒ แƒ—แƒ›แƒแƒœแƒ”แƒ—แƒ—แƒแƒœ โ€žแƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒ•แƒโ€œ ICMP-แƒ˜แƒก แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ˜แƒ—. แƒ“แƒ แƒ”แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜ แƒ›แƒแƒ’แƒ•แƒแƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒ— GlobalNetworkPolicy, แƒ›แƒ˜แƒ›แƒแƒ แƒ—แƒ แƒ”แƒ แƒ—แƒ”แƒฃแƒšแƒก HostEndpoint:

apiVersion: crd.projectcalico.org/v1
kind: GlobalNetworkPolicy
metadata:
  name: deny-icmp-kube-02
spec:
  selector: "role == 'k8s-node'"
  order: 0
  ingress:
  - action: Allow
    protocol: ICMP
  egress:
  - action: Allow
    protocol: ICMP
---
apiVersion: crd.projectcalico.org/v1
kind: HostEndpoint
metadata:
  name: kube-02-eth0
  labels:
    role: k8s-node
spec:
  interfaceName: eth0
  node: kube-02
  expectedIPs: ["192.168.2.2"]

VPN แƒกแƒแƒฅแƒ›แƒ”

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

Calico แƒ™แƒฃแƒ‘แƒ”แƒ แƒœแƒ”แƒขแƒจแƒ˜ แƒฅแƒกแƒ”แƒšแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก: แƒจแƒ”แƒกแƒแƒ•แƒแƒšแƒ˜ แƒ“แƒ แƒ›แƒชแƒ˜แƒ แƒ” แƒ’แƒแƒ›แƒแƒชแƒ“แƒ˜แƒšแƒ”แƒ‘แƒ

แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ˜ แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒแƒœ VPN-แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ UDP แƒžแƒแƒ แƒขแƒ˜แƒ— 1194 แƒ“แƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ, แƒ˜แƒฆแƒ”แƒ‘แƒ”แƒœ แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ”แƒ‘แƒก แƒžแƒแƒ“แƒ”แƒ‘แƒ˜แƒกแƒ แƒ“แƒ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜แƒก แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒฃแƒš แƒฅแƒ•แƒ”แƒฅแƒกแƒ”แƒšแƒจแƒ˜. แƒ›แƒ—แƒ”แƒšแƒ˜ แƒฅแƒ•แƒ”แƒฅแƒกแƒ”แƒšแƒ”แƒ‘แƒ˜ แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒฃแƒšแƒ˜แƒ แƒ˜แƒกแƒ”, แƒ แƒแƒ› แƒแƒ  แƒ“แƒแƒ™แƒแƒ แƒ’แƒแƒœ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ˜ แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ”แƒ‘แƒ˜แƒก แƒ’แƒแƒ“แƒแƒขแƒ•แƒ˜แƒ แƒ—แƒ•แƒ˜แƒกแƒ แƒ“แƒ แƒจแƒ”แƒชแƒ•แƒšแƒ˜แƒกแƒแƒก.

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

แƒจแƒ”แƒกแƒแƒซแƒšแƒ แƒ’แƒแƒ“แƒแƒฌแƒงแƒ•แƒ”แƒขแƒ˜แƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒซแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ“แƒ”แƒ’แƒแƒ“ แƒแƒ˜แƒ แƒฉแƒ˜แƒ”แƒก แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜:

  1. แƒžแƒแƒ“แƒ”แƒ‘แƒ˜ VPN-แƒ˜แƒ— แƒ“แƒแƒ’แƒ”แƒ’แƒ›แƒ˜แƒšแƒ˜แƒ แƒ—แƒ˜แƒ—แƒ แƒ™แƒ•แƒแƒœแƒซแƒจแƒ˜ hostNetwork, แƒแƒœแƒฃ แƒ แƒ”แƒแƒšแƒฃแƒ  IP-แƒ›แƒ“แƒ”.
  2. แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ’แƒแƒœแƒ—แƒแƒ•แƒกแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ’แƒแƒ แƒ”แƒ— ClusterIP. แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ” แƒคแƒ˜แƒ–แƒ˜แƒ™แƒฃแƒ แƒแƒ“ แƒ“แƒแƒ›แƒแƒœแƒขแƒแƒŸแƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒžแƒแƒ แƒขแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒฎแƒ”แƒšแƒ›แƒ˜แƒกแƒแƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒ แƒ’แƒแƒ แƒ”แƒ“แƒแƒœ แƒ›แƒชแƒ˜แƒ แƒ” แƒ“แƒแƒ—แƒฅแƒ›แƒ”แƒ‘แƒ˜แƒ— (แƒœแƒแƒ›แƒ“แƒ•แƒ˜แƒšแƒ˜ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒก แƒžแƒ˜แƒ แƒแƒ‘แƒ˜แƒ—แƒ˜ แƒแƒ แƒกแƒ”แƒ‘แƒแƒ‘แƒ).
  3. แƒ˜แƒ› แƒ™แƒ•แƒแƒœแƒซแƒ˜แƒก แƒ“แƒแƒ“แƒ’แƒ”แƒœแƒ, แƒ แƒแƒ›แƒ”แƒšแƒ–แƒ”แƒ“แƒแƒช แƒฌแƒ˜แƒžแƒฌแƒ แƒ’แƒแƒ˜แƒ–แƒแƒ แƒ“แƒ, แƒฉแƒ•แƒ”แƒœแƒ˜ แƒ˜แƒกแƒขแƒแƒ แƒ˜แƒ˜แƒก แƒคแƒแƒ แƒ’แƒšแƒ”แƒ‘แƒก แƒกแƒชแƒ˜แƒšแƒ“แƒ”แƒ‘แƒ. แƒ›แƒ” แƒฃแƒ‘แƒ แƒแƒšแƒแƒ“ แƒ•แƒ˜แƒขแƒงแƒ•แƒ˜, แƒ แƒแƒ› แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒญแƒ˜แƒ“แƒ แƒแƒ“ โ€žแƒ›แƒ˜แƒแƒญแƒ”แƒ“แƒแƒ—โ€œ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜ แƒ™แƒ•แƒแƒœแƒซแƒ–แƒ” แƒแƒœ แƒ“แƒแƒฌแƒ”แƒ แƒแƒ— แƒžแƒแƒขแƒแƒ แƒ แƒ’แƒ•แƒ”แƒ แƒ“แƒ˜แƒ—แƒ˜ แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ›แƒแƒœแƒ˜แƒขแƒแƒ แƒ˜แƒœแƒ’แƒก แƒ’แƒแƒฃแƒฌแƒ”แƒ•แƒก VPN แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ˜แƒก แƒ›แƒ˜แƒ›แƒ“แƒ˜แƒœแƒแƒ แƒ” IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก แƒ“แƒ แƒ“แƒแƒแƒ แƒ”แƒ“แƒแƒฅแƒขแƒ˜แƒ แƒ”แƒ‘แƒก แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ”แƒ‘แƒ—แƒแƒœ แƒ แƒ”แƒ’แƒ˜แƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒš DNS แƒฉแƒแƒœแƒแƒฌแƒ”แƒ แƒ”แƒ‘แƒก - แƒ•แƒ˜แƒกแƒแƒช แƒแƒฅแƒ•แƒก แƒกแƒแƒ™แƒ›แƒแƒ แƒ˜แƒกแƒ˜ แƒคแƒแƒœแƒขแƒแƒ–แƒ˜แƒ.

แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜แƒ–แƒแƒชแƒ˜แƒ˜แƒก แƒ—แƒ•แƒแƒšแƒกแƒแƒ–แƒ แƒ˜แƒกแƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒจแƒ”แƒ’แƒ•แƒ˜แƒซแƒšแƒ˜แƒ แƒชแƒแƒšแƒกแƒแƒฎแƒแƒ“ แƒแƒ›แƒแƒ•แƒ˜แƒชแƒœแƒแƒ— VPN แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ VPN แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ›แƒ˜แƒ”แƒ  แƒ’แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜ IP แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒ˜แƒ—. แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒ›แƒแƒชแƒ”แƒ›แƒฃแƒšแƒ˜แƒ แƒแƒกแƒ”แƒ—แƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜แƒก แƒกแƒ”แƒ แƒ•แƒ˜แƒกแƒ”แƒ‘แƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ–แƒฆแƒฃแƒ“แƒ•แƒ˜แƒก แƒžแƒ แƒ˜แƒ›แƒ˜แƒขแƒ˜แƒฃแƒšแƒ˜ แƒ›แƒแƒ’แƒแƒšแƒ˜แƒ—แƒ˜, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒ˜แƒšแƒฃแƒกแƒขแƒ แƒ˜แƒ แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ–แƒ”แƒ›แƒแƒฎแƒกแƒ”แƒœแƒ”แƒ‘แƒฃแƒš Redis-แƒ–แƒ”:

apiVersion: crd.projectcalico.org/v1
kind: HostEndpoint
metadata:
  name: vpnclient-eth0
  labels:
    role: vpnclient
    environment: production
spec:
  interfaceName: "*"
  node: kube-02
  expectedIPs: ["172.176.176.2"]
---
apiVersion: crd.projectcalico.org/v1
kind: GlobalNetworkPolicy
metadata:
  name: vpn-rules
spec:
  selector: "role == 'vpnclient'"
  order: 0
  applyOnForward: true
  preDNAT: true
  ingress:
  - action: Deny
    protocol: TCP
    destination:
      ports: [6379]
  - action: Allow
    protocol: UDP
    destination:
      ports: [53, 67]

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

แƒจแƒ”แƒ“แƒ”แƒ’แƒ”แƒ‘แƒ˜

แƒแƒ›แƒ แƒ˜แƒ’แƒแƒ“, Calico-แƒก แƒ’แƒแƒคแƒแƒ แƒ—แƒแƒ”แƒ‘แƒฃแƒšแƒ˜ API-แƒก แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ˜แƒ—, แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ›แƒแƒฅแƒœแƒ˜แƒšแƒแƒ“ แƒ“แƒแƒแƒ™แƒแƒœแƒคแƒ˜แƒ’แƒฃแƒ แƒ˜แƒ แƒแƒ— แƒ“แƒ แƒ“แƒ˜แƒœแƒแƒ›แƒ˜แƒฃแƒ แƒแƒ“ แƒจแƒ”แƒชแƒ•แƒแƒšแƒแƒ— แƒ›แƒแƒ แƒจแƒ แƒฃแƒขแƒ˜ แƒ™แƒšแƒแƒกแƒขแƒ”แƒ แƒจแƒ˜ แƒ“แƒ แƒ›แƒ˜แƒก แƒ’แƒแƒ แƒจแƒ”แƒ›แƒ. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒ›แƒ˜แƒกแƒ˜ แƒ’แƒแƒ›แƒแƒงแƒ”แƒœแƒ”แƒ‘แƒ แƒจแƒ”แƒ˜แƒซแƒšแƒ”แƒ‘แƒ แƒฐแƒ’แƒแƒ•แƒก แƒ‘แƒ”แƒฆแƒฃแƒ แƒ”แƒ‘แƒ˜แƒก แƒกแƒ แƒแƒšแƒแƒก แƒฅแƒ•แƒ”แƒ›แƒ”แƒฎแƒ˜แƒ—, แƒฎแƒแƒšแƒ L3 แƒฅแƒกแƒ”แƒšแƒ˜แƒก แƒ“แƒแƒœแƒ”แƒ แƒ’แƒ•แƒ BGP แƒ“แƒ IP-IP แƒ’แƒ•แƒ˜แƒ แƒแƒ‘แƒ”แƒ‘แƒ˜แƒ— แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒแƒ›แƒแƒ–แƒ แƒ–แƒ”แƒœแƒ˜ แƒฃแƒ‘แƒ แƒแƒšแƒ Kubernetes-แƒ˜แƒก แƒ˜แƒœแƒกแƒขแƒแƒšแƒแƒชแƒ˜แƒแƒจแƒ˜ แƒ‘แƒ แƒขแƒงแƒ”แƒš แƒฅแƒกแƒ”แƒšแƒจแƒ˜... แƒ—แƒฃแƒ›แƒชแƒ, แƒฌแƒ˜แƒœแƒแƒแƒฆแƒ›แƒ“แƒ”แƒ’ แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒ˜แƒœแƒกแƒขแƒ แƒฃแƒ›แƒ”แƒœแƒขแƒ˜ แƒ’แƒแƒ›แƒแƒ˜แƒงแƒฃแƒ แƒ”แƒ‘แƒ แƒกแƒแƒ™แƒ›แƒแƒแƒ“ แƒกแƒ˜แƒชแƒแƒชแƒฎแƒšแƒ˜แƒกแƒฃแƒœแƒแƒ แƒ˜แƒแƒœแƒ˜ แƒ“แƒ แƒกแƒแƒกแƒแƒ แƒ’แƒ”แƒ‘แƒšแƒ. .

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

PS

แƒแƒกแƒ”แƒ•แƒ” แƒฌแƒแƒ˜แƒ™แƒ˜แƒ—แƒฎแƒ”แƒ— แƒฉแƒ•แƒ”แƒœแƒก แƒ‘แƒšแƒแƒ’แƒ–แƒ”:

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

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