Networking cho DevOps
Giới thiệu
Trong hành trình trở thành một DevOps Engineer, hiểu biết về mạng máy tính (networking) không còn là “nice-to-have” mà là “must-have”. Dù bạn làm việc với Kubernetes, CI/CD pipelines, hay cloud infrastructure, bạn đều sẽ va chạm với các khái niệm như IP, subnet, firewall, DNS, load balancing, và nhiều hơn nữa.
Bài viết này sẽ cung cấp nền tảng networking thiết yếu dành riêng cho DevOps — không đi sâu vào lý thuyết mạng truyền thống, mà tập trung vào những gì bạn thực sự cần khi triển khai, giám sát và gỡ lỗi hệ thống phân tán.
Các khái niệm cơ bản
Dưới đây là những khái niệm networking cốt lõi mà mọi DevOps Engineer nên nắm vững:
- IP Address & Subnetting: Hiểu IPv4/IPv6, CIDR notation (ví dụ: 192.168.1.0/24), và cách chia mạng con.
- TCP/IP Model: Biết các lớp (Application, Transport, Network, Link) và vai trò của chúng.
- Ports & Protocols: HTTP/HTTPS (80/443), SSH (22), DNS (53), v.v.
- DNS: Cách tên miền được phân giải thành địa chỉ IP — đặc biệt quan trọng khi làm việc với service discovery trong Kubernetes hoặc cloud.
- NAT & Routing: Làm sao traffic đi từ pod trong Kubernetes ra internet và ngược lại.
Networking trong Cloud
Các nền tảng cloud như AWS, GCP, Azure cung cấp các dịch vụ networking trừu tượng hóa hạ tầng vật lý:
- VPC (Virtual Private Cloud): Mạng riêng ảo trong AWS — nơi bạn định nghĩa subnet, route table, security group.
- Security Groups & NACLs: Tường lửa ở cấp instance và subnet.
- Load Balancer: Phân phối traffic đến nhiều instance (Application Load Balancer, Network Load Balancer).
- PrivateLink / VPC Peering: Kết nối an toàn giữa các VPC hoặc dịch vụ mà không qua internet.
Networking trong Kubernetes
Kubernetes có mô hình networking “flat” — mọi pod có thể giao tiếp trực tiếp với nhau mà không cần NAT. Các khái niệm quan trọng:
- Pod IP: Mỗi pod có IP duy nhất trong cluster.
- Service: Cung cấp stable IP/DNS cho nhóm pod.
- Ingress: Quản lý truy cập HTTP/HTTPS từ bên ngoài vào service.
- CNI (Container Network Interface): Plugin như Calico, Flannel, Cilium — chịu trách nhiệm cấu hình mạng cho pod.
Công cụ hữu ích cho DevOps Networking
Khi gỡ lỗi mạng, bạn sẽ thường dùng các lệnh sau:
ping
– Kiểm tra kết nối cơ bản.traceroute
/mtr
– Xem đường đi của gói tin.dig
/nslookup
– Kiểm tra DNS.netstat
/ss
– Xem port đang mở.tcpdump
/wireshark
– Phân tích gói tin sâu.kubectl describe svc
,kubectl get endpoints
– Kiểm tra service trong Kubernetes.
Kết luận
Networking là nền tảng vô hình nhưng cực kỳ quan trọng trong DevOps. Hiểu rõ nó giúp bạn triển khai hệ thống ổn định, bảo mật và dễ dàng gỡ lỗi khi sự cố xảy ra. Đừng chỉ “copy-paste YAML” — hãy hiểu traffic đi đâu, qua đâu, và tại sao.
Hãy bắt đầu từ các khái niệm cơ bản, thực hành trên cloud sandbox hoặc minikube, và dần làm chủ mạng trong thế giới DevOps!