Pengantar Skydive
Skydive adalah topologi jaringan open-source dan penganalisa protokol real-time. Ini bertujuan untuk memberikan cara yang lengkap untuk memahami apa yang terjadi di infrastruktur jaringan.
Tangkapan layar objek (pod, antarmuka) di kubernetes

Halaman proyek resmi: https://github.com/skydive-project/skydive
Kubernetes akan lebih rendah.
Sekarang mari kita lihat contoh yang lebih sederhana.
Untuk menunjukkan, instal cluster Etcd di 3 server. Untuk ini kita akan menggunakan peran galaksi frank6866.etcd.
ansible-galaxy install frank6866.etcd
Di bawah ini
- hosts: etcd become: yes roles: - frank6866.etcd
File ansible.cfg di bawah ini
[defaults] inventory = inventory remote_user = user host_key_checking = False stdout_callback=debug
file persediaan
frank6866-etcd-1 ansible_ssh_host=172.26.9.78 etcd_public_ip=172.26.9.78 frank6866-etcd-2 ansible_ssh_host=172.26.9.79 etcd_public_ip=172.26.9.79 frank6866-etcd-3 ansible_ssh_host=172.26.9.80 etcd_public_ip=172.26.9.80 [cluster1] frank6866-etcd-[1:3] [etcd:children] cluster1 [etcd:vars] etcd_tls_enabled='false'
Kami memulai instalasi
ansible-playbook -i hosts.multiple etcd-cluster.yaml
Setelah mengunduh repositori skydive
git clone https://github.com/skydive-project/skydive.git
Buka folder contrib / ansible / inventory
cd contrib/ansible/inventory
Edit IP dalam file hosts.multiple
[analyzers] IP [agents] IP etcd # skydive-flow-matrix # For skydive-flow-matrix add skydive_extra_config: [agents:vars] skydive_extra_config={'agent.topology.probes': ['socketinfo',]}
Kami memulai pemasangan agen skydive dan penganalisa
ansible-playbook -i inventory/hosts.multiple playbook.yml.sample
Setelah itu, dari komputer kami, buka IP :8082
Dan kita melihat sesuatu seperti ini

Skydive menunjukkan objek: antarmuka.
Topologi yang Anda lihat saat membuka Skydive terbentuk di file /etc/skydive/skydive.yml
Jika Anda menginstal skydive di kubernetes, maka itu akan menampilkan pod.
Jika Anda mengomentari topologi dalam konfigurasi penganalisis, kami hanya akan mendapatkan objek terpisah tanpa tautan.

Konfigurasi dengan topologi yang dikomentari:
Judul spoiler analyzer: auth: cluster: backend: cluster password: secret username: skydive listen: 0.0.0.0:8082 # topology: # fabric: # - TOR1[Name=tor1] -> TOR1_PORT1[Name=port1, MTU=1500] # - TOR1_PORT1 -> *[Type=host,Name=skydive-rpm-apatsev-2]/eth0 # - TOR1[Name=tor1] -> TOR1_PORT2[Name=port2, MTU=1500] # - TOR1_PORT2 -> *[Type=host,Name=skydive-rpm-apatsev-3]/eth0 # - TOR1[Name=tor1] -> TOR1_PORT3[Name=port3, MTU=1500] # - TOR1_PORT3 -> *[Type=host,Name=skydive-rpm-apatsev-4]/eth0 analyzers: - 172.26.9.21:8082 auth: cluster: type: basic users: skydive: secret etcd: embedded: true listen: 0.0.0.0:12379 name: skydive-rpm-apatsev-1 flow: protocol: udp host_id: skydive-rpm-apatsev-1
Dan sekarang, dengan bantuan skydive-flow-matrix, mari kita lihat koneksi aktif antara server.
Pertama-tama instal skydive-flow-matrix pada komputer kerja Anda.
git clone https://github.com/skydive-project/skydive-flow-matrix.git cd skydive-flow-matrix/ apt install graphviz sudo pip install virtualenv virtualenv .venv source .venv/bin/activate pip install -r requirements.txt pip install .
Kami mendapatkan konektivitas aktif dalam bentuk teks.
skydive-flow-matrix --analyzer IP :8082 --username admin --password password protocol,server,server_ip,port,server_proc,server_procname,client,client_ip,client_proc,client_procname TCP,skydive-apatsev-2,127.0.0.1,2379,/usr/bin/etcd,etcd,skydive-apatsev-2,127.0.0.1,/usr/bin/etcd,etcd TCP,skydive-apatsev-2,127.0.0.1,4001,/usr/bin/etcd,etcd,skydive-apatsev-2,127.0.0.1,/usr/bin/etcd,etcd TCP,skydive-apatsev-4,172.26.9.80,2380,/usr/bin/etcd,etcd,skydive-apatsev-2,172.26.9.78,/usr/bin/etcd,etcd TCP,skydive-apatsev-2,172.26.9.78,2380,/usr/bin/etcd,etcd,skydive-apatsev-3,172.26.9.79,/usr/bin/etcd,etcd TCP,skydive-apatsev-4,127.0.0.1,4001,/usr/bin/etcd,etcd,skydive-apatsev-4,127.0.0.1,/usr/bin/etcd,etcd TCP,skydive-apatsev-3,127.0.0.1,4001,/usr/bin/etcd,etcd,skydive-apatsev-3,127.0.0.1,/usr/bin/etcd,etcd TCP,skydive-apatsev-3,172.26.9.79,2380,/usr/bin/etcd,etcd,skydive-apatsev-2,172.26.9.78,/usr/bin/etcd,etcd TCP,skydive-apatsev-3,172.26.9.79,2380,/usr/bin/etcd,etcd,skydive-apatsev-4,172.26.9.80,/usr/bin/etcd,etcd TCP,skydive-apatsev-2,172.26.9.78,2380,/usr/bin/etcd,etcd,skydive-apatsev-4,172.26.9.80,/usr/bin/etcd,etcd TCP,skydive-apatsev-4,127.0.0.1,2379,/usr/bin/etcd,etcd,skydive-apatsev-4,127.0.0.1,/usr/bin/etcd,etcd TCP,skydive-apatsev-3,127.0.0.1,2379,/usr/bin/etcd,etcd,skydive-apatsev-3,127.0.0.1,/usr/bin/etcd,etcd TCP,skydive-apatsev-4,172.26.9.80,2380,/usr/bin/etcd,etcd,skydive-apatsev-3,172.26.9.79,/usr/bin/etcd,etcd
Kami juga mendapatkan koneksi aktif dalam bentuk grafis.
skydive-flow-matrix --analyzer IP :8082 --username admin --password password --format render

Jika Anda mengomentari topologi dalam konfigurasi penganalisis dan memulai analisis topologi, kami masih akan mendapatkan koneksi aktif dalam bentuk grafis.
Artinya, topologi tidak mempengaruhi skydive-flow-matrix

Kesimpulan:
Topologi di jendela skydive utama menunjukkan node di mana agen diinstal, antarmuka yang diinstal pada node ini.
Dalam topologi, node dapat saling terhubung melalui antarmuka. Untuk melakukan ini, perbaiki file /etc/skydive/skydive.yml
Sekarang instal skydive di Kubernetes
Skydive perlu diinstal dalam versi Kubernetes tidak lebih dari 1,16.
Anda dapat menggunakan kubespray untuk instalasi.
Selanjutnya, jalankan instalasi skydive:
git clone https://github.com/skydive-project/skydive.git cd skydive/contrib/kubernetes/ kubectl apply -f skydive.yaml
Setelah menginstal skydive di kubernetes, kami mulai meneruskan port 8082 ke workstation Anda.
Perintah ini harus dijalankan dari workstation Anda.
Sebelum itu, Anda perlu membuat file config di direktori .kube di direktori home.
kubectl port-forward service/skydive-analyzer 8082:8082
Beberapa tangkapan layar dan objek video (pod, antarmuka) di kubernetes

Jika kita menekan plus, maka akan ada lebih banyak objek.

Video:
- Docker (buruh pelabuhan)
- Ethtool (ethtool)
- Libvirt (libvirt)
- LLDP (lldp)
- Lxd (lxd)
- NetLINK (netlink)
- NetNS (jaring)
- Neutron (neutron)
- OVSDB (ovsdb)
- Opencontrail (opencontrail)
- runC (runc)
- Informasi Soket (socketinfo)
- VPP (vpp)
Di mana penganalisa bisa mendapatkan topologi dari:
- Isstio (istio)
- Kubernetes (k8s)
- OVN (ovn)
Dukungan luas untuk K8
Membangun grafik node:
- umum: cluster, namespace
- compute: node, pod, container
- penyimpanan: persistentvolumeclaim (pvc), persistentvolume (pv), storageclass
- jaringan: kebijakan jaringan, layanan, titik akhir, masuknya
- deployment: deployment, statefulset, replicaset, replicationcontroller, cronjob, job
- konfigurasi: configmap, rahasia
Membangun grafik objek terminal:
- kepemilikan k8s-k8s (mis. k8s.namespace - k8s.pod)
- hubungan k8s-k8s (mis. k8s.service - k8s.pod)
- hubungan k8s-fisik (mis. k8s.node - host)
Tampilkan node metadata:
- bidang yang diindeks: bidang standar seperti
Type
, Name
plus spesifik k8s seperti K8s.Namespace
- bidang yang disimpan saja: seluruh konten sumber daya k8 disimpan di bawah
K8s.Extra
Membangun metadata simpul:
- bidang metadata simpul
Status
- dengan nilai Atas (putih) / Bawah (merah)
- saat ini diterapkan untuk sumber daya: pod, persistentvolumeclaim (pvc) dan persistentvolume (pv)
Dukungan untuk berbagai jenis Flow
- sFlow
- Afpacket
- PCAP
- Soket PCAP
- DPDK
- eBPF
- Openvswitch port mirroring
Pencarian jaringan Skydive oleh Ansible dijelaskan dalam 2 posting.
Kami mencari orang yang dapat menulis pos tentang fitur Skydive lainnya.
Obrolan Telegram di skydive.network: https://t.me/skydive_network_en