Linux_Practical_Interview_501 750
Linux Practical Interview Questions (501-750)
Section titled “Linux Practical Interview Questions (501-750)”Linux System Administration
Section titled “Linux System Administration”Q481: How do you manage users in bulk?
Section titled “Q481: How do you manage users in bulk?”Answer:
# Create users from filewhile IFS=: read -r user pass uid gid info home shell; do useradd -u "$uid" -g "$gid" -d "$home" -s "$shell" -c "$info" "$user"done < users.txt
# Password in bulkfor user in user1 user2 user3; do echo "$user:password" | chpasswddone
# CSV import# username,uid,gid,info,home,shell,passwordQ482: How do you manage groups in bulk?
Section titled “Q482: How do you manage groups in bulk?”Answer:
# Create groupsfor group in group1 group2 group3; do groupadd "$group"done
# Add users to groupgpasswd -M user1,user2,user3 groupname
# Add users one by onefor user in user1 user2; do usermod -aG groupname "$user"doneQ483: How do you set up password policies?
Section titled “Q483: How do you set up password policies?”Answer:
# PAM configurationPASS_MAX_DAYS 90PASS_MIN_DAYS 1PASS_MIN_LEN 12PASS_WARN_AGE 7
# Or using chage# Set password expirationchage -M 90 usernamechage -m 1 usernamechage -W 7 username
# Viewchage -l usernameQ484: How do you configure sudo access?
Section titled “Q484: How do you configure sudo access?”Answer:
# Edit sudoersvisudo
# Grant all privilegesusername ALL=(ALL:ALL) ALL
# Passwordlessusername ALL=(ALL) NOPASSWD: ALL
# Specific commandsusername ALL=(ALL) /bin/ls, /bin/kill
# Group%sudo ALL=(ALL:ALL) ALLQ485: How do you lock/unlock accounts?
Section titled “Q485: How do you lock/unlock accounts?”Answer:
# Lock accountusermod -L username# orpasswd -l username
# Unlockusermod -U username# orpasswd -u username
# Check statuspasswd -S usernameQ486: How do you set up SSH key management?
Section titled “Q486: How do you set up SSH key management?”Answer:
# Generate keyssh-keygen -t ed25519 -C "user@host"
# Copy to serverssh-copy-id user@server
# Restrict keys# ~/.ssh/authorized_keysfrom="192.168.1.10",command="/bin/ls" ssh-ed25519 AAAA...
# Force commandcommand="git-shell" ssh-ed25519 AAAA...Q487: How do you configure SSH agent forwarding?
Section titled “Q487: How do you configure SSH agent forwarding?”Answer:
# Start agentssh-agent bash
# Add keyssh-add
# Forward agent# ~/.ssh/configHost server ForwardAgent yes
# Usessh -A user@serverQ488: How do you set up SSH tunnel?
Section titled “Q488: How do you set up SSH tunnel?”Answer:
# Local port forwardssh -L 8080:localhost:80 user@server
# Remote port forwardssh -R 8080:localhost:80 user@server
# Dynamic SOCKS proxyssh -D 8080 user@server
# Keep alivessh -o ServerAliveInterval=60 user@serverQ489: How do you configure rsync over SSH?
Section titled “Q489: How do you configure rsync over SSH?”Answer:
# With SSH keyrsync -avz -e "ssh -i /path/to/key" source/ user@server:/dest/
# With passwordrsync -avz -e "sshpass -p password ssh" source/ user@server:/dest/
# With specific portrsync -avz -e "ssh -p 2222" source/ user@server:/dest/Q490: How do you use scp with key?
Section titled “Q490: How do you use scp with key?”Answer:
# With identity filescp -i /path/to/key file user@server:/path/
# With specific cipherscp -c aes256-gcm@openssh.com file user@server:/path/
# Recursivescp -r directory/ user@server:/path/
# With compressionscp -C file user@server:/path/Q491: How do you configure NFS automount?
Section titled “Q491: How do you configure NFS automount?”Answer:
/- /etc/auto.direct
# /etc/auto.direct/mnt/nfs -rw,soft,intr server:/share
# Startsystemctl enable autofssystemctl start autofs
# Testls /mnt/nfsQ492: How do you configure autofs with LDAP?
Section titled “Q492: How do you configure autofs with LDAP?”Answer:
# Installapt install autofs-ldap
/home ldap ldap.example.com:/home/&
# /etc/ldap.confuri ldap://ldap.example.combase dc=example,dc=comQ493: How do you set up LDAP client?
Section titled “Q493: How do you set up LDAP client?”Answer:
# Installapt install libnss-ldap libpam-ldap
# Configure# /etc/nsswitch.confpasswd: compat ldapgroup: compat ldapshadow: compat ldap
# PAM# /etc/pam.d/common-sessionsession optional pam_mkhomedir.so skel=/etc/skel umask=077Q494: How do you configure SSSD?
Section titled “Q494: How do you configure SSSD?”Answer:
# Installapt install sssd realmd
# Configure# /etc/sssd/sssd.conf[sssd]services = nss, pamdomains = LDAP
[domain/LDAP]id_provider = ldapauth_provider = ldapldap_uri = ldap://ldap.example.comldap_search_base = dc=example,dc=com
# Enablesystemctl enable sssdQ495: How do you integrate with Active Directory?
Section titled “Q495: How do you integrate with Active Directory?”Answer:
# Installapt install realmd sssd adcli
# Join domainrealm join --user=admin example.com
# Checkrealm listid user@EXAMPLE.COM
# Loginlogin user@EXAMPLE.COMQ496: How do you configure Kerberos?
Section titled “Q496: How do you configure Kerberos?”Answer:
# Installapt install krb5-user
[libdefaults] default_realm = EXAMPLE.COM
[realms] EXAMPLE.COM = { kdc = kdc.example.com admin_server = kdc.example.com }
# Get ticketkinit admin@EXAMPLE.COMklistkdestroyQ497: How do you use SSSD caching?
Section titled “Q497: How do you use SSSD caching?”Answer:
# Configure[sssd]cache_credentials = trueentry_cache_timeout = 600
# Clear cachesss_cache -E
# Debugsss_debuglevel 9
# Checkgetent passwd user@domainQ498: How do you configure winbind?
Section titled “Q498: How do you configure winbind?”Answer:
# Installapt install winbind libpam-winbind
[global] workgroup = EXAMPLE security = ads realm = EXAMPLE.COM winbind enum users = yes winbind enum groups = yes
# Join domainnet ads join -U admin
# Enablesystemctl enable winbindQ499: How do you use authconfig?
Section titled “Q499: How do you use authconfig?”Answer:
# Configure authenticationauthconfig --enableshadow --enablemd5 \ --ldapserver=ldap.example.com \ --ldapbasedn="dc=example,dc=com" \ --update
# With Kerberosauthconfig --enablekrb5 \ --krb5realm=EXAMPLE.COM \ --krb5kdc=kdc.example.com \ --updateQ500: How do you set up LDAP replication?
Section titled “Q500: How do you set up LDAP replication?”Answer:
# Master configserverID 1syncrepl rid=001 provider=ldap://ldap2.example.com bindmethod=simple binddn="cn=admin,dc=example,dc=com" credentials=secret searchbase="dc=example,dc=com" type=refreshAndPersistLinux Storage Advanced
Section titled “Linux Storage Advanced”Q501: How do you use device mapper?
Section titled “Q501: How do you use device mapper?”Answer:
# Create linear mappingecho "0 100000 linear /dev/sdb1 0" | dmsetup create vol1
# Removedmsetup remove vol1
# Statusdmsetup statusdmsetup tableQ502: How do you configure dm-crypt with LUKS?
Section titled “Q502: How do you configure dm-crypt with LUKS?”Answer:
# Createcryptsetup luksFormat /dev/sdb1
# Opencryptsetup open /dev/sdb1 crypt_vol
# Formatmkfs.xfs /dev/mapper/crypt_vol
# Mountmount /dev/mapper/crypt_vol /mnt
# Closeumount /mntcryptsetup close crypt_volQ503: How do you use VeraCrypt?
Section titled “Q503: How do you use VeraCrypt?”Answer:
# Installapt install veracrypt
# Create volumeveracrypt -c
# Mountveracrypt /path/to/container /mnt/veracrypt
# Dismountveracrypt -d /path/to/containerQ504: How do you use GPG encryption?
Section titled “Q504: How do you use GPG encryption?”Answer:
# Generate keygpg --full-generate-key
# Encryptgpg -e -r recipient@example.com file.txt
# Decryptgpg -d file.txt.gpg
# Symmetricgpg -c file.txtgpg -o file.txt.gpg -c file.txtQ505: How do you use age encryption?
Section titled “Q505: How do you use age encryption?”Answer:
# Installgo install filippo.io/age/cmd/age@latest
# Generate keysage-keygen
# Encryptage -p -o file.txt.age file.txt
# Decryptage -d -i key.txt file.txt.ageQ506: How do you configure dm-verity?
Section titled “Q506: How do you configure dm-verity?”Answer:
# Create verity deviceveritysetup format /dev/sda1 /dev/sda2 > verity_params
# Mountveritysetup open /dev/sda2 verity_root /dev/sda1
# Checkveritysetup verify /dev/sda2 verity_root /dev/sda1Q507: How do you use dm-zero and dm-null?
Section titled “Q507: How do you use dm-zero and dm-null?”Answer:
# Null device (discard writes)dmsetup create null /dev/zero 0
# Zero device (return zeros)dmsetup create zero /dev/null 0
# Use for testingdd if=/dev/zero of=/dev/mapper/zero bs=1M count=100Q508: How do you use RAID 6?
Section titled “Q508: How do you use RAID 6?”Answer:
# Create RAID 6mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
# With sparemdadm --create /dev/md0 --level=6 --raid-devices=4 --spare-devices=1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1
# Checkcat /proc/mdstatQ509: How do you use RAID 10?
Section titled “Q509: How do you use RAID 10?”Answer:
# Create RAID 10mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
# Layout# n = near (default)# f = far# o = offset
mdadm --create /dev/md0 --level=10 --raid-devices=4 --layout=n2 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1Q510: How do you convert RAID levels?
Section titled “Q510: How do you convert RAID levels?”Answer:
# Convert RAID1 to RAID5mdadm --grow /dev/md0 --level=5 --raid-devices=3mdadm --add /dev/md0 /dev/sdc1
# Convert to larger diskmdadm --manage /dev/md0 --fail /dev/sdb1mdadm --manage /dev/md0 --replace /dev/sdb1Q511: How do you monitor MD RAID?
Section titled “Q511: How do you monitor MD RAID?”Answer:
# Check statuscat /proc/mdstat
# Detailedmdadm --detail /dev/md0
# Monitormdadm --monitor --daemonise --mail=admin@example.com /dev/md0
# Log rotation# /etc/logrotate.d/mdadm/var/log/mdadm.log { weekly rotate 4}Q512: How do you use mdadm with bitmap?
Section titled “Q512: How do you use mdadm with bitmap?”Answer:
# Add bitmapmdadm --grow /dev/md0 --bitmap=internal
# Add external bitmapmdadm --grow /dev/md0 --bitmap=/boot/md0.bitmap
# Remove bitmapmdadm --grow /dev/md0 --bitmap=noneQ513: How do you recover from RAID failure?
Section titled “Q513: How do you recover from RAID failure?”Answer:
# Checkmdadm --detail /dev/md0
# Identify failedmdadm --examine /dev/sdb1
# Remove failedmdadm /dev/md0 --remove /dev/sdb1
# Add newmdadm /dev/md0 --add /dev/sdf1
# Rebuild# AutomaticQ514: How do you use LVM cache?
Section titled “Q514: How do you use LVM cache?”Answer:
# Create cache poollvcreate --type cache-pool -L 10G -n cache_pool vg_ssd
# Create cached LVlvcreate --type cache -L 10G --cachepool cache_pool -n cached_lv vg_hddQ515: How do you use LVM metadata backup?
Section titled “Q515: How do you use LVM metadata backup?”Answer:
# Backupvgcfgbackup
# View backupls -l /etc/lvm/backup/
# Restorevgcfgrestore vg_name
# Automated backup# /etc/lvm/lvm.confbackup { backup = 1 backup_dir = "/etc/lvm/backup" retain_min = 10 retain_days = 30}Q516: How do you migrate LVM to new disk?
Section titled “Q516: How do you migrate LVM to new disk?”Answer:
# Create new PVpvcreate /dev/sdc1
# Add to VGvgextend vg_name /dev/sdc1
# Move datapvmove /dev/sdb1 /dev/sdc1
# Remove oldvgreduce vg_name /dev/sdb1Q517: How do you create thin pool?
Section titled “Q517: How do you create thin pool?”Answer:
# Create thin poollvcreate -L 20G --thinpool thin_pool vg
# Create thin LVlvcreate -V 100G --thin -n thin_lv vg/thin_pool
# Activatelvchange -ay vg/thin_lvQ518: How do you use LVM snapshots for backups?
Section titled “Q518: How do you use LVM snapshots for backups?”Answer:
# Create snapshotlvcreate -s -L 5G -n backup_snap /dev/vg/lv
# Mount snapshotmount -o ro /dev/vg/backup_snap /mnt/snap
# Backuptar -czf /backup/backup.tar.gz -C /mnt/snap .
# Remove snapshotlvremove /dev/vg/backup_snapQ519: How do you use btrfs send/receive?
Section titled “Q519: How do you use btrfs send/receive?”Answer:
# Initial backupbtrfs send /mnt/snap1 | gzip > backup1.gz
# Incrementalbtrfs send -p /mnt/snap1 /mnt/snap2 | gzip > backup2.gz
# Receivegzip -d -c backup2.gz | btrfs receive /backup/Q520: How do you use btrfs balance?
Section titled “Q520: How do you use btrfs balance?”Answer:
# Full balancebtrfs balance start /mnt/btrfs
# Specific profilebtrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/btrfs
# With filtersbtrfs balance start -dusage=50 /mnt/btrfs
# Statusbtrfs balance status /mnt/btrfsQ521: How do you use btrfs raid1?
Section titled “Q521: How do you use btrfs raid1?”Answer:
# Convert to RAID1btrfs balance start -dconvert=raid1 -mconvert=raid1 /mnt/btrfs
# Add devicebtrfs device add /dev/sdc1 /mnt/btrfs
# Remove devicebtrfs device remove /dev/sdb1 /mnt/btrfsQ522: How do you use zfs?
Section titled “Q522: How do you use zfs?”Answer:
# Installapt install zfs-dkms zfsutils-linux
# Create poolzpool create -f mirror pool1 /dev/sdb1 /dev/sdc1
# Create filesystemzfs create pool1/data
# Set propertieszfs set compression=lz4 pool1/datazfs set quota=10G pool1/dataQ523: How do you use zfs snapshots?
Section titled “Q523: How do you use zfs snapshots?”Answer:
Create snapshot
Section titled “Create snapshot”zfs snapshot pool1/data@snap1
zfs list -t snapshot
Rollback
Section titled “Rollback”zfs rollback pool1/data@snap1
zfs clone pool1/data@snap1 pool1/clone
### Q524: How do you use zfs send/receive?**Answer:**```bash# Full sendzfs send pool1/data@snap1 | ssh host "zfs receive pool1/data"
# Incrementalzfs send -i pool1/data@snap1 pool1/data@snap2 | ssh host "zfs receive pool1/data"
# Compressedzfs send pool1/data@snap1 | gzip | ssh host "gunzip | zfs receive pool1/data"Q525: How do you configure zfs dedup?
Section titled “Q525: How do you configure zfs dedup?”Answer:
# Enable dedupzfs set dedup=on pool1/data
# Check dedup ratiozpool status -D pool1
# With specific algorithmzfs set dedup=sha256,verify pool1/dataQ526: How do you use zfs encryption?
Section titled “Q526: How do you use zfs encryption?”Answer:
# Create encryptedzfs create -o encryption=on -o keyformat=passphrase pool1/encrypted
# Load keyzfs keyload -a # allzfs keyload pool1/encrypted
# Unloadzfs keyunload pool1/encryptedQ527: How do you configure iscsiadm?
Section titled “Q527: How do you configure iscsiadm?”Answer:
# Discoveriscsiadm -m discovery -t st -p 192.168.1.10
# Loginiscsiadm -m node -T iqn.name -p 192.168.1.10 -l
# Logoutiscsiadm -m node -T iqn.name -p 192.168.1.10 -u
# Auto-loginiscsiadm -m node -T iqn.name -p 192.168.1.10 --op update -n node.startup -v automaticQ528: How do you configure targetcli?
Section titled “Q528: How do you configure targetcli?”Answer:
# Starttargetcli
# Create backstore/backstores/block create name=block1 dev=/dev/sdb
# Create iSCSI target/iscsi create iqn.2023-01.com.example:storage
# Create LUN/iscsi/iqn.../tpg1/luns create /backstores/block/block1
# Create ACL/iscsi/iqn.../tpg1/acls create iqn.2023-01.com.example:client
# SavesaveconfigexitQ529: How do you use multipath?
Section titled “Q529: How do you use multipath?”Answer:
# Listmultipath -ll
# Add pathmultipath -a /dev/sdb
# Removemultipath -d /dev/sdb
# Format# /etc/multipath.confmultipaths { "3600605b00e0c960018e0c95c00000000" { alias mpath0 }}Q530: How do you use iscsi scaling?
Section titled “Q530: How do you use iscsi scaling?”Answer:
# Configure sessionnode.session.xpanding_max = 16node.session.initial_login_retry_max = 8
# Create sessions# Multiple connectionsiscsiadm -m node -T iqn.name -p ip1 --op update -n node.conn[0].iscsi.MaxRecvDataSegmentLength=262144Linux Networking Advanced
Section titled “Linux Networking Advanced”Q531: How do you use ethtool advanced?
Section titled “Q531: How do you use ethtool advanced?”Answer:
# Show settingsethtool -i eth0
# Pauseethtool -A eth0 rx on tx on
# Coalesceethtool -C eth0 rx-usecs 100 tx-usecs 100
# Channelsethtool -L eth0 combined 4
# Offloadsethtool -K eth0 tso on gso on gro onQ532: How do you configure network bonding modes?
Section titled “Q532: How do you configure network bonding modes?”Answer:
# Mode 0 (Round-robin)echo 0 > /sys/class/net/bond0/bonding/mode
# Mode 1 (Active-backup)echo 1 > /sys/class/net/bond0/bonding/mode
# Mode 4 (LACP)echo 4 > /sys/class/net/bond0/bonding/mode
# Monitoringecho 100 > /sys/class/net/bond0/bonding/miimonQ533: How do you use teamd?
Section titled “Q533: How do you use teamd?”Answer:
# Create teamteamd -o -n -g team0 -d '{"runner": {"name": "lacp"}}'
# Add portsteamdctl team0 port add eth1teamdctl team0 port add eth2
# Configure IPip addr add 192.168.1.10/24 dev team0
# Monitorteamdctl team0 stateQ534: How do you configure VRRP?
Section titled “Q534: How do you configure VRRP?”Answer:
# keepalived configvrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100
virtual_ipaddress { 192.168.1.100 dev eth0 }
track_interface { eth0 }}Q535: How do you use Bird routing?
Section titled “Q535: How do you use Bird routing?”Answer:
# Installapt install bird
# Configure# /etc/bird/bird.confprotocol static { route 10.0.0.0/8 via 192.168.1.1;}
protocol direct { interface "eth*";}
protocol kernel { learn; export all;}Q536: How do you use FRRouting?
Section titled “Q536: How do you use FRRouting?”Answer:
# Installapt install frr
# Enable# /etc/frr/daemonsospfd=yes
# Configure# /etc/frr/ospfd.confrouter ospf network 192.168.1.0/24 area 0Q537: How do you configure Quagga?
Section titled “Q537: How do you configure Quagga?”Answer:
# Installapt install quagga
# Configure# /etc/quagga/zebra.confinterface eth0 ip address 192.168.1.10/24
# /etc/quagga/ospfd.confrouter ospf network 192.168.1.0/24 area 0Q538: How do you use Bird2?
Section titled “Q538: How do you use Bird2?”Answer:
# Installapt install bird2
# Configure# /etc/bird/bird.confrouter id 192.168.1.10;
protocol static { route 10.0.0.0/8 via 192.168.1.1;}
protocol bgp AS65000 { neighbor 192.168.1.20 as AS65001; import all; export all;}Q539: How do you configure BGP?
Section titled “Q539: How do you configure BGP?”Answer:
# Bird configprotocol bgp Peering { local as 65000; neighbor 192.168.1.20 as 65001;
import all; export all;
add paths tx; add paths rx;}Q540: How do you configure OSPF?
Section titled “Q540: How do you configure OSPF?”Answer:
# Bird configprotocol ospf MyOSPF { tick 2;
area 0 { interface "eth*" { type broadcast; }; };}Q541: How do you use nftables advanced?
Section titled “Q541: How do you use nftables advanced?”Answer:
# Create tablenft add table inet filter
# Add chainnft add chain inet filter input { type filter hook input priority 0; }
# Add rulenft add rule inet filter input ct state established,related accept
# NATnft add table ip natnft add chain ip nat postrouting { type nat hook postrouting priority 100; }nft add rule ip nat postrouting oifname "eth0" masqueradeQ542: How do you use conntrack?
Section titled “Q542: How do you use conntrack?”Answer:
# View connectionsconntrack -Lconntrack -L -p tcp
# Countconntrack -C
# Deleteconntrack -D -p tcp --dport 80
# NATconntrack -L -n | grep NATQ543: How do you use ebtables?
Section titled “Q543: How do you use ebtables?”Answer:
# Listebtables -L
# Bridge filterebtables -A FORWARD -p IPv4 --ip-proto tcp --ip-dport 80 -j DROP
# NATebtables -t nat -A PREROUTING -i eth0 -j redirect --redirect-target ACCEPTQ544: How do you use tc qdisc?
Section titled “Q544: How do you use tc qdisc?”Answer:
# Add htb qdisctc qdisc add dev eth0 root handle 1: htb default 10
# Add classtc class add dev eth0 parent 1: classid 1:10 htb rate 100mbit ceil 100mbit
# Add filtertc filter add dev eth0 parent 1: protocol all prio 1 u32 match ip src 192.168.1.0/24 flowid 1:10Q545: How do you use tc shaping?
Section titled “Q545: How do you use tc shaping?”Answer:
# Rate limittc qdisc add dev eth0 root tbf rate 10mbit burst 15k latency 50ms
# Delaytc qdisc add dev eth0 root netem delay 100ms
# Losstc qdisc add dev eth0 root netem loss 10%
# Reordertc qdisc add dev eth0 root netem delay 100ms reorder 25%Q546: How do you use iptables Layer 7?
Section titled “Q546: How do you use iptables Layer 7?”Answer:
# Installapt install ipp2p
# Block P2Piptables -A FORWARD -m ipp2p --ipp2p -j DROP
# With conntrackiptables -A FORWARD -m layer7 --l7proto bittorrent -j DROPQ547: How do you use NFQueue?
Section titled “Q547: How do you use NFQueue?”Answer:
# Mark packetsiptables -A INPUT -j NFQUEUE --queue-num 0
# Process with Python#!/usr/bin/env python3import NFQueuedef callback(payload): print(payload.get_data()) payload.set_verdict(NFQueue.NF_ACCEPT)
q = NFQueue.Queue()q.set_callback(callback)q.open()q.bind()q.try_run()Q548: How do you use iftop?
Section titled “Q548: How do you use iftop?”Answer:
# Installapt install iftop
# Usageiftopiftop -i eth0iftop -i eth0 -n # no DNSiftop -i eth0 -B # bytesQ549: How do you use nethogs?
Section titled “Q549: How do you use nethogs?”Answer:
# Installapt install nethogs
# Usagenethogsnethogs eth0nethogs -d 2 # refreshnethogs -p # promiscuousQ550: How do you use bmon?
Section titled “Q550: How do you use bmon?”Answer:
# Installapt install bmon
# Usagebmonbmon -p eth0bmon -b -o interactiveQ551: How do you use vnstat?
Section titled “Q551: How do you use vnstat?”Answer:
# Installapt install vnstat
# Configurevnstat -u -i eth0
# Viewvnstatvnstat -hvnstat -dvnstat -mvnstat -lQ552: How do you use iptraf-ng?
Section titled “Q552: How do you use iptraf-ng?”Answer:
# Installapt install iptraf-ng
# Usageiptraf-ngiptraf-ng -i alliptraf-ng -i eth0Q553: How do you use pktstat?
Section titled “Q553: How do you use pktstat?”Answer:
# Installapt install pktstat
# Usagepktstat -i eth0pktstat -i eth0 -T # show timespktstat -i eth0 -w # wideQ554: How do you use slurm?
Section titled “Q554: How do you use slurm?”Answer:
# Installapt install slurm
# Usageslurm -i eth0slurm -i eth0 -s # split TX/RXQ555: How do you use trafshow?
Section titled “Q555: How do you use trafshow?”Answer:
# Installapt install trafshow
# Usagetrafshow -i eth0trafshow -i eth0 -c tcpLinux Virtualization Advanced
Section titled “Linux Virtualization Advanced”Q556: How do you use KVM nested?
Section titled “Q556: How do you use KVM nested?”Answer:
# Enable nestedmodprobe kvm_intel nested=1# ormodprobe kvm_amd nested=1
# Checkcat /sys/module/kvm_intel/parameters/nested
# In VM# CPU model<cpu mode='host-passthrough'>Q557: How do you configure KVM CPU pinning?
Section titled “Q557: How do you configure KVM CPU pinning?”Answer:
# Pin to coresvirsh vcpupin domain 0 0,1,2,3
# Pin with emulatorvirsh emulatorpin domain 0 0-3
# NUMAvirsh numatune domain --mode preferred --nodeset 0-1Q558: How do you use KVM huge pages?
Section titled “Q558: How do you use KVM huge pages?”Answer:
# Enable huge pagesecho 1024 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages
# VM config# Memory<memory unit='KiB'>4194304</memory><currentMemory unit='KiB'>4194304</currentMemory><hugepages> <page size='2048' unit='KiB'/></hugepages>Q559: How do you configure KVM SR-IOV?
Section titled “Q559: How do you configure KVM SR-IOV?”Answer:
# Enable SR-IOVecho 2 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs
# Create VF# Checklspci | grep -i virtual
# Assign to VMvirsh attach-interface --domain vm --type hostdev --source 0000:01:00.2 --managed --configQ560: How do you use KVM PCI passthrough?
Section titled “Q560: How do you use KVM PCI passthrough?”Answer:
# Enable IOMMUGRUB_CMDLINE_LINUX_DEFAULT="intel_iommu=on"
# Updateupdate-grub
# Reboot
# Attachvirsh attach-device vm /etc/libvirt/qemu/pci.xml --persistent
# pci.xml<hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/> </source></hostdev>Q561: How do you use libvirt secrets?
Section titled “Q561: How do you use libvirt secrets?”Answer:
# Create secretvirsh secret-define secret.xml
# Set valuevirsh secret-set-value UUID base64value
# Use in VM# disk<secret type='passphrase'> <uuid>uuid</uuid></secret>Q562: How do you configure KVM live migration?
Section titled “Q562: How do you configure KVM live migration?”Answer:
# Shared storage# NFS or similar
# Allow migration# /etc/libvirt/libvirtd.conflisten_tls = 0listen_tcp = 1auth_tcp = "sasl"
# Migratevirsh migrate --live --persistent vm qemu+tcp://dest/system
# With compressionvirsh migrate --live --compressed vm qemu+tcp://dest/systemQ563: How do you use KVM snapshots?
Section titled “Q563: How do you use KVM snapshots?”Answer:
# Create snapshotvirsh snapshot-create-as vm --name snap1
# Listvirsh snapshot-list vm
# Revertvirsh snapshot-revert vm snap1
# Deletevirsh snapshot-delete vm snap1Q564: How do you configure KVM memory ballooning?
Section titled “Q564: How do you configure KVM memory ballooning?”Answer:
# Enable in VM<memballoon model='virtio'></memballoon>
# Dynamic adjustmentvirsh setmem vm 2G --configvirsh setmaxmem vm 4G --configQ565: How do you use KVM vhost-net?
Section titled “Q565: How do you use KVM vhost-net?”Answer:
# Load modulemodprobe vhost_net
# Enable in VM<interface type='network'> <model type='virtio'/> <driver name='vhost'/></interface>Q566: How do you use Vagrant with KVM?
Section titled “Q566: How do you use Vagrant with KVM?”Answer:
# Installvagrant plugin install vagrant-libvirt
# VagrantfileVagrant.configure("2") do |config| config.vm.box = "generic/ubuntu2204" config.vm.provider "libvirt" do |lv| lv.memory = 2048 lv.cpus = 2 endend
# Commandsvagrant up --provider=libvirtvagrant destroyQ567: How do you use virt-manager?
Section titled “Q567: How do you use virt-manager?”Answer:
# Installapt install virt-manager
# Runvirt-manager
# Connect to remote# File -> Add Connection# QEMU/KVM over SSHQ568: How do you use virsh console?
Section titled “Q568: How do you use virsh console?”Answer:
# Enable console in VMGRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200"
# Connectvirsh console vm
# Exit# Ctrl+]Q569: How do you use cloud-init with KVM?
Section titled “Q569: How do you use cloud-init with KVM?”Answer:
# Download cloud imagewget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
# Create VM with cloud-initvirt-install --name vm1 \ --memory 2048 --vcpu 2 \ --disk jammy-server-cloudimg-amd64.img,format=qcow2 \ --cloud-init root-disk-generate=empty
# Or with manual# genisoimage -o seed.iso -volid cidata -joliet -rock user-data meta-dataQ570: How do you use libguestfs-tools?
Section titled “Q570: How do you use libguestfs-tools?”Answer:
# Mountguestmount -a disk.img -m /dev/sda1 /mnt
# List filesvirt-ls -a disk.img /
# Editvirt-edit -a disk.img /etc/passwd
# Copy in/outvirt-copy-in -a disk.img file.txt /root/virt-copy-out -a disk.img /root/file.txt ./
# Catvirt-cat -a disk.img /etc/passwdLinux Containers Advanced
Section titled “Linux Containers Advanced”Q571: How do you use Docker user namespace remapping?
Section titled “Q571: How do you use Docker user namespace remapping?”Answer:
# Enable in daemon{ "userns-remap": "default"}
# Or custom{ "userns-remap": "myuser"}
# Create useruseradd -r -u 100000 -g dockremap dockremap
# Configure subuid/subgidusermod -v 100000-165536 -w 100000-165536 dockremapQ572: How do you use Docker rootless?
Section titled “Q572: How do you use Docker rootless?”Answer:
# Installapt install docker-ce-rootless-extras
# Setupdockerd-rootless-setuptool.sh install
# Startsystemctl --user enable dockersystemctl --user start docker
# Usedocker run nginxQ573: How do you configure Docker storage driver?
Section titled “Q573: How do you configure Docker storage driver?”Answer:
{ "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ]}Q574: How do you use Docker BuildKit?
Section titled “Q574: How do you use Docker BuildKit?”Answer:
# Enableexport DOCKER_BUILDKIT=1
# In daemon# /etc/docker/daemon.json{ "features": { "buildkit": true }}
# Builddocker build --progress=plain .Q575: How do you use Docker build cache?
Section titled “Q575: How do you use Docker build cache?”Answer:
# Build with cachedocker build .
# No cachedocker build --no-cache .
# Cache fromdocker build --cache-from image:tag .
# Prune cachedocker builder pruneQ576: How do you use Docker multi-stage builds?
Section titled “Q576: How do you use Docker multi-stage builds?”Answer:
# Build stageFROM golang:1.20 AS builderWORKDIR /appCOPY . .RUN go build -o main .
# Runtime stageFROM alpine:3.18COPY --from=builder /app/main /app/mainCMD ["/app/main"]Q577: How do you use Docker secrets?
Section titled “Q577: How do you use Docker secrets?”Answer:
# Create secretecho "password" | docker secret create db_password -
# Use in servicedocker secret lsdocker secret inspect db_password
# docker-compose.ymlsecrets: db_password: external: true
# Orsecrets: db_password: file: ./db_password.txtQ578: How do you use Docker configs?
Section titled “Q578: How do you use Docker configs?”Answer:
# Create configdocker config create nginx_config nginx.conf
# Usedocker config ls
# In serviceconfigs: - source: nginx_config target: /etc/nginx/nginx.conf mode: 0444Q579: How do you configure Docker healthchecks?
Section titled “Q579: How do you configure Docker healthchecks?”Answer:
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD curl -f http://localhost/ || exit 1Q580: How do you use Docker logging drivers?
Section titled “Q580: How do you use Docker logging drivers?”Answer:
# JSON filedocker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3 nginx
# Syslogdocker run --log-driver syslog --log-opt syslog-address=tcp://localhost:514 nginx
# Fluentddocker run --log-driver fluentd --log-opt fluentd-address=localhost:24224 nginxQ581: How do you use Docker resource limits?
Section titled “Q581: How do you use Docker resource limits?”Answer:
# Memorydocker run -m 512m nginx
# CPUdocker run --cpus=0.5 nginx
# Blkiodocker run --device-read-bps /dev/sda:50mb nginx
# Restart policydocker run --restart=unless-stopped nginxQ582: How do you use Docker networks?
Section titled “Q582: How do you use Docker networks?”Answer:
# Create networkdocker network create mynet
# Overlaydocker network create -d overlay mynet
# Use networkdocker run --network mynet nginx
# Static IPdocker network connect --ip 10.0.0.10 mynet containerQ583: How do you use Docker volumes?
Section titled “Q583: How do you use Docker volumes?”Answer:
# Named volumedocker volume create myvoldocker run -v myvol:/data nginx
# Bind mountdocker run -v $(pwd):/data nginx
# tmpfsdocker run --tmpfs /tmp nginx
# NFSdocker volume create --driver local \ -o type=nfs \ -o o=addr=192.168.1.10,rw \ -o device=:/path nfsvolQ584: How do you use Docker compose profiles?
Section titled “Q584: How do you use Docker compose profiles?”Answer:
version: '3.9'services: web: image: nginx db: image: mysql profiles: ["database"] admin: image: adminer profiles: ["admin"]Q585: How do you use Docker compose extends?
Section titled “Q585: How do you use Docker compose extends?”Answer:
services: web: build: . environment: - ENV=production
# docker-compose.ymlservices: web: extends: file: docker-compose.base.yml service: web ports: - "80:80"Q586: How do you use Docker compose networking?
Section titled “Q586: How do you use Docker compose networking?”Answer:
version: '3'services: web: build: . networks: - frontend api: build: . networks: - frontend - backend
networks: frontend: backend: driver: overlayQ587: How do you use Docker healthchecks in compose?
Section titled “Q587: How do you use Docker healthchecks in compose?”Answer:
services: web: image: nginx healthcheck: test: ["CMD", "curl", "-f", "http://localhost/"] interval: 30s timeout: 10s retries: 3 start_period: 40sQ588: How do you use Podman Quadlet?
Section titled “Q588: How do you use Podman Quadlet?”Answer:
# nginx.container[Container]Image=nginx:latestPublishPort=8080:80
[Service]Restart=always
[Install]WantedBy=multi-user.targetQ589: How do you use Podman generate systemd?
Section titled “Q589: How do you use Podman generate systemd?”Answer:
# Generate unit filespodman generate systemd --name mycontainer > container.service
# With dependenciespodman generate systemd --name mycontainer --files --new
# Create drop-inmkdir -p /etc/systemd/system/container.service.dQ590: How do you use Podman networks?
Section titled “Q590: How do you use Podman networks?”Answer:
# Create networkpodman network create mynet
# Run with networkpodman run -d --network mynet nginx
# DNSpodman run -d --network mynet --dns 8.8.8.8 nginxQ591: How do you use Buildah in rootless mode?
Section titled “Q591: How do you use Buildah in rootless mode?”Answer:
# Buildbuildah --storage-driver vfs bud -t myimage .
# Without rootbuildah --userns=keep-id bud -t myimage .Q592: How do you use Skopeo with TLS?
Section titled “Q592: How do you use Skopeo with TLS?”Answer:
# With TLSskopeo inspect --tls-verify=false docker://example.com/image
# With credentialsskopeo inspect docker://user:pass@example.com/image
# Using configskopeo --authfile ~/.docker/config.json inspect docker://example.com/imageQ593: How do you configure containerd with TLS?
Section titled “Q593: How do you configure containerd with TLS?”Answer:
[plugins."io.containerd.grpc.v1.cri"] sandbox_image = "registry.k8s.io/pause:3.9"
[plugins."io.containerd.grpc.v1.cri".registry] config_path = "/etc/containerd/certs.d"
# /etc/containerd/certs.d/docker.io/hosts.tomlserver = "https://docker.io"[host."https://registry-1.docker.io"] capabilities = ["pull"]Q594: How do you use containerd-shim?
Section titled “Q594: How do you use containerd-shim?”Answer:
# Run with containerdctr images pull docker.io/library/nginx:latestctr run -d docker.io/library/nginx:latest nginxQ595: How do you use crictl with TLS?
Section titled “Q595: How do you use crictl with TLS?”Answer:
runtime-endpoint: unix:///var/run/containerd/containerd.sockimage-endpoint: unix:///var/run/containerd/containerd.socktls: ca_file: /path/to/ca.crt cert_file: /path/to/cert.crt key_file: /path/to/key.crtQ596: How do you use nerdctl?
Section titled “Q596: How do you use nerdctl?”Answer:
# Like dockernerdctl pull nginxnerdctl run -d nginxnerdctl psnerdctl build -t myimage .
# With containerdnerdctl --address /run/containerd/containerd.sock psQ597: How do you use Kaniko?
Section titled “Q597: How do you use Kaniko?”Answer:
# Builddocker run -v $(pwd):/workspace gcr.io/kaniko-project/executor:latest \ --context /workspace \ --destination gcr.io/myproject/image:tag
# With dockerfiledocker run -v $(pwd):/workspace gcr.io/kaniko-project/executor:latest \ --context /workspace \ --dockerfile /workspace/Dockerfile \ --destination gcr.io/myproject/image:tagQ598: How do you use Buildpacks?
Section titled “Q598: How do you use Buildpacks?”Answer:
# Install packpack --version
# Buildpack build myapp --builder paketobuildpacks/builder:base
# Detectpack detect myapp
# Rebasepack rebase myapp --run-image gcr.io/paketo-buildpacks/run:base-cnbQ599: How do you use Helmfile?
Section titled “Q599: How do you use Helmfile?”Answer:
repositories: - name: nginx url: https://helm.nginx.com/stable
releases: - name: nginx-ingress chart: nginx/nginx-ingress values: - ./values.yamlQ600: How do you use ArgoCD?
Section titled “Q600: How do you use ArgoCD?”Answer:
# Installkubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# CLIargocd login localhost:8080
# Add appargocd app create myapp \ --repo https://github.com/myrepo/myapp \ --path . \ --dest-server https://kubernetes.default.svc \ --dest-namespace defaultQuestions 601-750
Section titled “Questions 601-750”Q601: How do you use Kubernetes RBAC?
Section titled “Q601: How do you use Kubernetes RBAC?”Answer:
# ServiceAccountapiVersion: v1kind: ServiceAccountmetadata: name: myapp-sa
---# RoleapiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata: name: myapp-rolerules:- apiGroups: [""] resources: ["pods"] verbs: ["get", "list", "watch"]
---# RoleBindingapiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata: name: myapp-rolebindingsubjects:- kind: ServiceAccount name: myapp-saroleRef: kind: Role name: myapp-role apiGroup: rbac.authorization.k8s.ioQ602: How do you use Kubernetes NetworkPolicy?
Section titled “Q602: How do you use Kubernetes NetworkPolicy?”Answer:
apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: deny-allspec: podSelector: {} policyTypes: - Ingress - Egress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: allow-appspec: podSelector: matchLabels: app: web ingress: - from: - podSelector: matchLabels: app: api ports: - protocol: TCP port: 80Q603: How do you use Kubernetes PDB?
Section titled “Q603: How do you use Kubernetes PDB?”Answer:
apiVersion: policy/v1kind: PodDisruptionBudgetmetadata: name: myapp-pdbspec: minAvailable: 2 selector: matchLabels: app: myapp
---# Or percentagespec: maxUnavailable: 25% selector: matchLabels: app: myappQ604: How do you use Kubernetes ResourceQuota?
Section titled “Q604: How do you use Kubernetes ResourceQuota?”Answer:
apiVersion: v1kind: ResourceQuotametadata: name: myquotaspec: hard: requests.cpu: "4" requests.memory: 8Gi limits.cpu: "8" limits.memory: 16Gi pods: "10" services: "5"Q605: How do you use Kubernetes LimitRange?
Section titled “Q605: How do you use Kubernetes LimitRange?”Answer:
apiVersion: v1kind: LimitRangemetadata: name: mylimitsspec: limits: - max: cpu: "4" memory: 8Gi min: cpu: 100m memory: 128Mi default: cpu: 500m memory: 1Gi defaultRequest: cpu: 200m memory: 512Mi type: ContainerQ606: How do you use Kubernetes HorizontalPodAutoscaler?
Section titled “Q606: How do you use Kubernetes HorizontalPodAutoscaler?”Answer:
apiVersion: autoscaling/v2kind: HorizontalPodAutoscalermetadata: name: myapp-hpaspec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: myapp minReplicas: 2 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 behavior: scaleDown: stabilizationWindowSeconds: 300 policies: - type: Percent value: 10 periodSeconds: 60Q607: How do you use Kubernetes VerticalPodAutoscaler?
Section titled “Q607: How do you use Kubernetes VerticalPodAutoscaler?”Answer:
apiVersion: "autoscaling.k8s.io/v1"kind: VerticalPodAutoscalermetadata: name: myapp-vpaspec: targetRef: apiVersion: "apps/v1" kind: Deployment name: myapp updatePolicy: updateMode: "Auto" resourcePolicy: containerPolicies: - containerName: myapp minAllowed: cpu: 100m memory: 128Mi maxAllowed: cpu: "4" memory: 8GiQ608: How do you use Kubernetes PodDisruptionBudget?
Section titled “Q608: How do you use Kubernetes PodDisruptionBudget?”Answer:
apiVersion: policy/v1kind: PodDisruptionBudgetmetadata: name: myappspec: minAvailable: 2 selector: matchLabels: app: myappQ609: How do you use Kubernetes PriorityClass?
Section titled “Q609: How do you use Kubernetes PriorityClass?”Answer:
apiVersion: scheduling.k8s.io/v1kind: PriorityClassmetadata: name: high-priorityvalue: 1000000globalDefault: falsedescription: "High priority for critical workloads"
---# Use in podpriorityClassName: high-priorityQ610: How do you use Kubernetes ServiceMesh?
Section titled “Q610: How do you use Kubernetes ServiceMesh?”Answer:
# Istio VirtualServiceapiVersion: networking.istio.io/v1beta1kind: VirtualServicemetadata: name: myappspec: hosts: - myapp http: - route: - destination: host: myapp subset: v1 weight: 90 - destination: host: myapp subset: v2 weight: 10Q611: How do you use Kubernetes ingress controller?
Section titled “Q611: How do you use Kubernetes ingress controller?”Answer:
apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: myapp annotations: nginx.ingress.kubernetes.io/rewrite-target: /spec: rules: - host: myapp.example.com http: paths: - path: / pathType: Prefix backend: service: name: myapp-svc port: number: 80Q612: How do you use Kubernetes cert-manager?
Section titled “Q612: How do you use Kubernetes cert-manager?”Answer:
apiVersion: cert-manager.io/v1kind: ClusterIssuermetadata: name: letsencrypt-prodspec: acme: server: https://acme-v02.api.letsencrypt.org/directory email: admin@example.com privateKeySecretRef: name: letsencrypt-prod solvers: - http01: ingress: class: nginx
---apiVersion: cert-manager.io/v1kind: Certificatemetadata: name: myapp-tlsspec: secretName: myapp-tls issuerRef: name: letsencrypt-prod kind: ClusterIssuer dnsNames: - myapp.example.comQ613: How do you use Kubernetes secrets encryption?
Section titled “Q613: How do you use Kubernetes secrets encryption?”Answer:
apiVersion: v1kind: Secretmetadata: name: aes-keydata: <base64-aes-key>
---# api-server--encryption-provider-config=encryption-config.yaml
# At rest# Secrets will be encrypted with AES-GCMQ614: How do you use Kubernetes pod security policy?
Section titled “Q614: How do you use Kubernetes pod security policy?”Answer:
apiVersion: policy/v1beta1kind: PodSecurityPolicymetadata: name: restrictedspec: privileged: false seLinux: rule: RunAsAny runAsUser: rule: MustRunAsNonRoot fsGroup: rule: RunAsAny volumes: - 'secret' - 'configMap'Q615: How do you use Kubernetes pod security admission?
Section titled “Q615: How do you use Kubernetes pod security admission?”Answer:
# PodsecurityContext: runAsNonRoot: true runAsUser: 1000 fsGroup: 2000 seccompProfile: type: RuntimeDefault
# ContainersecurityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: - ALLQ616: How do you use Kubernetes topology keys?
Section titled “Q616: How do you use Kubernetes topology keys?”Answer:
# Servicespec: topologyKeys: - "kubernetes.io/hostname" - "topology.kubernetes.io/zone" - "topology.kubernetes.io/region"
# Pod# PreferredDuringSchedulingIgnoredDuringExecution# RequiredDuringSchedulingIgnoredDuringExecutionQ617: How do you use Kubernetes service mesh linkerd?
Section titled “Q617: How do you use Kubernetes service mesh linkerd?”Answer:
# Install CLIcurl -sL https://run.linkerd.io/install | sh
# Installlinkerd install | kubectl apply -f -
# Add to namespacelinkerd inject deployment.yml | kubectl apply -f -
# Dashboardlinkerd viz dashboardQ618: How do you use Kubernetes Cilium?
Section titled “Q618: How do you use Kubernetes Cilium?”Answer:
# Install Cilium CLICILIUM_CLI_VERSION=$(curl -s https://raw.githubusercontent.com/cilium/cilium-cli/main/stable.txt)CLI_ARCH=$(uname -m)curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sumsudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz /usr/local/bin
# Installcilium install
# Statuscilium statusQ619: How do you use Calico?
Section titled “Q619: How do you use Calico?”Answer:
# Installkubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
# BGP peeringcalicoctl get bgppeer
# Apply BGPPeerapiVersion: projectcalico.org/v3kind: BGPPeermetadata: name: my-peerspec: peerIP: 192.168.1.1 asNumber: 64512Q620: How do you use Flannel?
Section titled “Q620: How do you use Flannel?”Answer:
# Installkubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
# Configure# kube-flannel.ymlnet-conf.json: | { "Network": "10.244.0.0/16", "Backend": { "Type": "vxlan" } }Q621: How do you use Prometheus Operator?
Section titled “Q621: How do you use Prometheus Operator?”Answer:
apiVersion: monitoring.coreos.com/v1kind: Prometheusmetadata: name: prometheusspec: serviceAccountName: prometheus serviceMonitorSelector: matchLabels: team: frontend resources: requests: memory: 400Mi
---apiVersion: monitoring.coreos.com/v1kind: ServiceMonitormetadata: name: myapp labels: team: frontendspec: selector: matchLabels: app: myapp endpoints: - port: webQ622: How do you use Prometheus Alertmanager?
Section titled “Q622: How do you use Prometheus Alertmanager?”Answer:
apiVersion: monitoring.coreos.com/v1beta1kind: AlertmanagerConfigmetadata: name: email-configspec: route: groupBy: [alertname] receiver: email receivers: - name: email emailConfigs: - to: admin@example.com sendResolved: trueQ623: How do you use Thanos?
Section titled “Q623: How do you use Thanos?”Answer:
# Sidecar- args: - sidecar - --tsdb.path=/prometheus - --prometheus.url=http://localhost:9090 - --grpc-address=:10901 - --http-address=:10902 image: thanosio/thanos:v0.30.0 name: thanos-sidecarQ624: How do you use Cortex?
Section titled “Q624: How do you use Cortex?”Answer:
# Helm valuescortex: config: schema: configs: - from: 2022-01-01 store: tsdb object_store: s3 schema: v11 storage: s3: bucket: cortex-dataQ625: How do you use Loki?
Section titled “Q625: How do you use Loki?”Answer:
# Helmloki: auth_enabled: false
schema_config: configs: - from: 2022-01-01 store: boltdb-shipper object_store: s3 schema: v11 index: prefix: loki_index_ period: 24hQ626: How do you use Grafana Tempo?
Section titled “Q626: How do you use Grafana Tempo?”Answer:
# Helmtempo: repository: grafana/tempo tag: latest service: type: LoadBalancer
storage: trace: backend: s3 s3: bucket: tempo-tracesQ627: How do you use Jaeger?
Section titled “Q627: How do you use Jaeger?”Answer:
# Installkubectl create namespace observabilitykubectl apply -f https://github.com/jaegertracing/jaeger-operator/releases/latest/download/jaeger-operator.yaml -n observability
# Create JaegerapiVersion: jaegertracing.io/v1kind: Jaegermetadata: name: jaegerspec: strategy: allInOne allInOne: image: jaegertracing/all-in-one:latest options: query: basePath: /jaeger/uiQ628: How do you use Elastic APM?
Section titled “Q628: How do you use Elastic APM?”Answer:
# Installdocker run -d --name apm-server \ --user=apm-server \ -p 8200:8200 \ -e ELASTICSEARCH_HOSTS=elasticsearch:9200 \ -e OUTPUT_LOGSTASH_INTERNAL=true \ -e KIBANA_HOST=kibana:5601 \ docker.elastic.co/apm/apm-server:latestQ629: How do you use OpenTelemetry?
Section titled “Q629: How do you use OpenTelemetry?”Answer:
# CollectorapiVersion: v1kind: ConfigMapmetadata: name: otel-collector-configdata: otel-collector-config: | receivers: otlp: protocols: grpc: http: exporters: otlp: endpoint: "tempo:4317" logging: loglevel: debug service: pipelines: traces: receivers: [otlp] exporters: [otlp, logging]Q630: How do you use Pixie?
Section titled “Q630: How do you use Pixie?”Answer:
# Installpx deploy
# Usepx run script px/conn_stats
# View streamspx streams
# Get pod infopx pod 10.0.0.1Linux Cloud Native
Section titled “Linux Cloud Native”Q631: How do you use Terraform with Kubernetes?
Section titled “Q631: How do you use Terraform with Kubernetes?”Answer:
provider "kubernetes" { config_path = "~/.kube/config"}
resource "kubernetes_deployment" "example" { metadata { name = "example" labels = { app = "example" } }
spec { replicas = 3
selector { match_labels = { app = "example" } }
template { metadata { labels = { app = "example" } }
spec { container { image = "nginx:1.21" name = "nginx"
resources { limits = { cpu = "500m" memory = "128Mi" } requests = { cpu = "250m" memory = "64Mi" } } } } } }}Q632: How do you use Helmfile?
Section titled “Q632: How do you use Helmfile?”Answer:
environments: production: values: - production.yaml staging: values: - staging.yaml
repositories: - name: nginx url: https://helm.nginx.com/stable - name: ingress-nginx url: https://kubernetes.github.io/ingress-nginx
releases: - name: nginx-ingress chart: ingress-nginx/ingress-nginx version: "4.0.0" values: - ingress-nginx.yaml
- name: myapp chart: ./myapp-chart values: - {{ .Environment.Name }}.yamlQ633: How do you use ArgoCD GitOps?
Section titled “Q633: How do you use ArgoCD GitOps?”Answer:
# Installkubectl create namespace argocdkubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
# Get passwordkubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
# Loginargocd login localhost:8080
# Add repoargocd repo add https://github.com/myorg/myapp --username user --password pass
# Create appargocd app create myapp \ --repo https://github.com/myorg/myapp \ --path . \ --dest-server https://kubernetes.default.svc \ --dest-namespace defaultQ634: How do you use Flux?
Section titled “Q634: How do you use Flux?”Answer:
# Installflux install
# Create sourceflux create source git myapp \ --url=https://github.com/myorg/myapp \ --branch=main
# Create kustomizationflux create kustomization myapp \ --source=myapp \ --path=./kustomize \ --prune=true \ --interval=10m
# Syncflux reconcile source git myappflux reconcile kustomization myappQ635: How do you use Crossplane?
Section titled “Q635: How do you use Crossplane?”Answer:
# Installhelm repo add crossplane-stable https://charts.crossplane.io/stablehelm install crossplane crossplane-stable/crossplane --namespace crossplane-system --create-namespace
# Install AWS providerkubectl apply -f https://github.com/crossplane/provider-aws/releases/latest/download/provider-aws.yaml
# Create ProviderConfigapiVersion: aws.upbound.io/v1beta1kind: ProviderConfigmetadata: name: defaultspec: credentials: source: Secret secretRef: namespace: crossplane-system name: aws-creds key: credentialsQ636: How do you use External Secrets Operator?
Section titled “Q636: How do you use External Secrets Operator?”Answer:
apiVersion: external-secrets.io/v1beta1kind: ClusterSecretStoremetadata: name: aws-secrets-managerspec: provider: aws: service: SecretsManager region: us-east-1
---apiVersion: external-secrets.io/v1beta1kind: ExternalSecretmetadata: name: myapp-secretsspec: refreshInterval: 1h secretStoreRef: name: aws-secrets-manager kind: ClusterSecretStore target: name: myapp-secrets data: - secretKey: DB_PASSWORD remoteRef: key: myapp/db-passwordQ637: How do you use Kyverno?
Section titled “Q637: How do you use Kyverno?”Answer:
# Installkubectl create -f https://raw.githubusercontent.com/kyverno/kyverno/main/config/release/kyverno.yaml
# PolicyapiVersion: kyverno.io/v1kind: ClusterPolicymetadata: name: require-labelsspec: validationFailureAction: enforce rules: - name: check-label match: resources: kinds: - Pod validate: message: "Label 'app' is required" pattern: metadata: labels: app: "?*"Q638: How do you use OPA Gatekeeper?
Section titled “Q638: How do you use OPA Gatekeeper?”Answer:
# Installkubectl apply -f https://raw.githubusercontent.com/open-policy-agent/gatekeeper-library/master/library/pod-security-policy/privileged-containers/template.yaml
# ConstraintapiVersion: constraints.gatekeeper.sh/v1beta1kind: K8sPrivilegedContainermetadata: name: psp-privileged-containerspec: match: kinds: - apiGroups: [""] kinds: ["Pod"]Q639: How do you use Datree?
Section titled “Q639: How do you use Datree?”Answer:
# Install CLIcurl -s https://get.datree.io | /bin/bash
# Run in CI/CDdatree test deployment.yaml
# As kubectl pluginkubectl datree test deployment.yamlQ640: How do you use Kube-bench?
Section titled “Q640: How do you use Kube-bench?”Answer:
# Runkube-bench run --targets node
# As jobkubectl apply -f https://raw.githubusercontent.com/aquasecurity/kube-bench/main/job.yaml
# Specific targetskube-bench run --targets=master,etcd,nodeQ641: How do you use Kubescape?
Section titled “Q641: How do you use Kubescape?”Answer:
# Installcurl -s https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash
# Scankubescape scan
# Submit to cloudkubescape scan --submit --account EMAIL
# Host scannerkubescape host-scanQ642: How do you use Trivy?
Section titled “Q642: How do you use Trivy?”Answer:
# Scan imagetrivy image nginx:latest
# Scan filesystemtrivy fs .
# Scan running containerstrivy kubernetes --context kind-kind
# As admission controllertrivy serverQ643: How do you use Falco?
Section titled “Q643: How do you use Falco?”Answer:
# Installkubectl apply -f https://raw.githubusercontent.com/falcosecurity/falco/master/integrations/k8s-using-daemonset/falco-daemonset-configmap.yaml
# Rules# /etc/falco/falco-rules.yaml- rule: Shell in container desc: notice shell activity condition: container.id != host and proc.name = bash output: "Shell in container (user=%user.name container_id=%container.id image=%container.image.repository)" priority: WARNINGQ644: How do you use Sysdig Secure?
Section titled “Q644: How do you use Sysdig Secure?”Answer:
# Install agentkubectl create namespace sysdig-agentcurl -s https://download.sysdig.com/stable/agent-k8s.yaml | sed 's/CLUSTER_NAME/cluster-name/g' | kubectl apply -f -
# Usesysdig -pc -c "topcontainers_cpu"Q645: How do you use Aqua Security?
Section titled “Q645: How do you use Aqua Security?”Answer:
# Installkubectl apply -f https://download.aquasec.com/aquasec/aquasec.yaml
# Scanaqua cvelib --version
# Enforce# Add labels to namespacekubectl label namespace production aqua.security=enforceQ646: How do you use Snyk?
Section titled “Q646: How do you use Snyk?”Answer:
# Installnpm install -g snyk
# Test container imagesnyk container test nginx:latest
# Test Kubernetessnyk k8s test --file=k8s-deployment.yaml
# Monitorsnyk monitor --docker --file=DockerfileQ647: How do you use Anchore?
Section titled “Q647: How do you use Anchore?”Answer:
# Installdocker run -d --name anchore \ -p 8228:8228 -p 8338:8338 \ anchoreio/anchore-engine:latest
# Add imagecurl -X POST http://localhost:8228/v1/images \ -d '{"source":"docker.io/library/nginx:latest"}'
# Analyzecurl -X GET http://localhost:8228/v1/images/$(uuid)/vulnQ648: How do you use Notary?
Section titled “Q648: How do you use Notary?”Answer:
# Initializenotary -s https://notary.docker.io init docker.io/library/nginx
# Signnotary -s https://notary.docker.io sign docker.io/library/nginx
# VerifyDOCKER_CONTENT_TRUST=1 docker pull nginxQ649: How do you use Cosign?
Section titled “Q649: How do you use Cosign?”Answer:
# Generate keyscosign generate-key-pair
# Signcosign sign --key cosign.key image:tag
# Verifycosign verify --key cosign.pub image:tag
# Store in registrycosign store image:tag
# Verify with keylesscosign verify image:tagQ650: How do you use sigstore cosign?
Section titled “Q650: How do you use sigstore cosign?”Answer:
# Keyless signingcosign sign --key oidc image:tag
# Verify keylesscosign verify image:tag
# Upload SBOMcosign attach sbom --sbom spdx image:tag
# Verify attestationcosign verify-attestation --key cosign.pub image:tagQuestions 651-750
Section titled “Questions 651-750”Q651: How do you use Flux CD?
Section titled “Q651: How do you use Flux CD?”Answer:
# Installflux bootstrap git \ --url=https://github.com/org/repo \ --branch=main \ --path=clusters/mycluster
# Add Helm repoflux create source helm ingress-nginx \ --url=https://kubernetes.github.io/ingress-nginx \ --interval=1h
# Create releaseflux create helmrelease ingress-nginx \ --source=HelmRepository/ingress-nginx \ --chart=ingress-nginx \ --namespace=ingress-nginxQ652: How do you use Argo Workflows?
Section titled “Q652: How do you use Argo Workflows?”Answer:
apiVersion: argoproj.io/v1alpha1kind: Workflowmetadata: generateName: myworkflow-spec: entrypoint: main templates: - name: main dag: tasks: - name: build template: build - name: test template: test dependencies: [build] - name: build container: image: golang:latest command: [make, build] - name: test container: image: golang:latest command: [make, test]Q653: How do you use Argo Events?
Section titled “Q653: How do you use Argo Events?”Answer:
apiVersion: argoproj.io/v1alpha1kind: EventSourcemetadata: name: webhookspec: webhook: example: port: "12000" endpoint: /example method: POST
---apiVersion: argoproj.io/v1alpha1kind: Sensormetadata: name: webhook-sensorspec: dependencies: - name: webhook-dep eventSourceName: webhook eventName: example triggers: - template: name: log-trigger log: message: "{{ .webhook-dep.body }}"Q654: How do you use Argo Rollouts?
Section titled “Q654: How do you use Argo Rollouts?”Answer:
apiVersion: argoproj.io/v1alpha1kind: Rolloutmetadata: name: myappspec: replicas: 10 strategy: canary: canaryService: myapp-canary stableService: myapp-stable trafficRouting: nginx: stableIngress: myapp-ingress steps: - setWeight: 10 - pause: {duration: 10m} - setWeight: 20 - pause: {duration: 10m} - setWeight: 100 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: myapp:latestQ655: How do you use Tekton?
Section titled “Q655: How do you use Tekton?”Answer:
apiVersion: tekton.dev/v1beta1kind: TaskRunmetadata: name: mytaskrunspec: taskRef: name: mytask params: - name: image value: gcr.io/myproject/myimageQ656: How do you use Jenkins X?
Section titled “Q656: How do you use Jenkins X?”Answer:
# Installjx install --provider=kubernetes
# Create quickstartjx create quickstart
# Promotejx promote myapp --version 1.0.0 --environment productionQ657: How do you use Spinnaker?
Section titled “Q657: How do you use Spinnaker?”Answer:
# Pipelineapplication: myapppipeline: stages: - name: Deploy type: deployManifest manifests: - manifest: apiVersion: apps/v1 kind: Deployment spec: replicas: 3Q658: How do you use ArgoCD Image Updater?
Section titled “Q658: How do you use ArgoCD Image Updater?”Answer:
# Installkubectl apply -f https://raw.githubusercontent.com/argoproj-labs/argocd-image-updater/stable/deploy/overlay.yaml
# ConfigureapiVersion: argoproj.io/v1alpha1kind: ArgoCDImageUpdatermetadata: name: myappspec: argocd: namespace: argocd images: - nginx:latest updateStrategy: latestQ659: How do you use Backstage?
Section titled “Q659: How do you use Backstage?”Answer:
# Installdocker run -it -p 7000:7000 backstage
# Create pluginbackstage-cli create-plugin --name my-plugin
# Add to app# app-config.yamlcatalog: locations: - type: url target: https://github.com/org/repo/catalog-info.yamlQ660: How do you use Service Mesh Interface?
Section titled “Q660: How do you use Service Mesh Interface?”Answer:
# Install SMIkubectl apply -f https://github.com/smi/smi-adaptor-istio/releases/download/v0.6.0/install.yaml
# Use traffic splitkubectl apply -f - <<EOFapiVersion: split.smi-spec.io/v1alpha2kind: TrafficSplitmetadata: name: myapp-splitspec: service: myapp subsets: - weight: 90 Service: myapp-v1 - weight: 10 Service: myapp-v2EOFQ661: How do you use Dapr?
Section titled “Q661: How do you use Dapr?”Answer:
# Install CLIwget -q https://raw.githubusercontent.com/dapr/cli/master/install.sh | /bin/bash
# Initializedapr init --kubernetes
# Deploy appkubectl apply -f deploy.yaml
# Invokedapr invoke --app-id myapp --method mymethod --payload '{}'Q662: How do you use KEDA?
Section titled “Q662: How do you use KEDA?”Answer:
apiVersion: keda.sh/v1alpha1kind: ScaledObjectmetadata: name: myapp-scalerspec: scaleTargetRef: name: myapp pollingInterval: 15 cooldownPeriod: 300 minReplicaCount: 0 maxReplicaCount: 10 triggers: - type: prometheus metadata: serverAddress: http://prometheus:9090 metricName: http_requests_per_second threshold: "100"Q663: How do you use Knative?
Section titled “Q663: How do you use Knative?”Answer:
apiVersion: serving.knative.dev/v1kind: Servicemetadata: name: myappspec: template: spec: containers: - image: gcr.io/knative-samples/helloworld-go ports: - containerPort: 8080 resources: limits: cpu: "1000m" memory: "256Mi" requests: cpu: "250m" memory: "128Mi"Q664: How do you use Kourier?
Section titled “Q664: How do you use Kourier?”Answer:
# Installkubectl apply -f https://github.com/knative/net-kourier/releases/download/v0.26.0/kourier.yaml
# Configurekubectl patch configmap/config-network \ --namespace knative-serving \ --type merge \ --patch '{"data":{"kourier-enabled":"true"}}'Q665: How do you use KServe?
Section titled “Q665: How do you use KServe?”Answer:
apiVersion: serving.kserve.io/v1beta1kind: InferenceServicemetadata: name: sklearn-irisspec: predictor: model: modelFormat: name: sklearn storageUri: "s3://bucket/sklearn/mymodel"Q666: How do you use Seldon Core?
Section titled “Q666: How do you use Seldon Core?”Answer:
apiVersion: machinelearning.seldon.io/v1kind: SeldonDeploymentmetadata: name: seldon-modelspec: predictors: - graph: name: classifier implementation: SKLEARN_SERVER modelUri: "s3://bucket/model" name: default replicas: 1Q667: How do you use BentoML?
Section titled “Q667: How do you use BentoML?”Answer:
import bentomlimport pandas as pd
@bentoml.service( resources={"cpu": "2"}, traffic={"timeout": 60})class MyService: @bentoml.api def predict(self, df: pd.DataFrame) -> list: # Your prediction logic return predictionsQ668: How do you use Triton Inference Server?
Section titled “Q668: How do you use Triton Inference Server?”Answer:
# Rundocker run --gpus=1 -p 8000:8000 -v /model/repository:/models nvcr.io/nvidia/tritonserver:latest \ --model-repository=/models
# Config# config.pbtxtname: "mymodel"platform: "tensorrt_plan"max_batch_size: 32input [ { name: "input" data_type: TYPE_FP32 dims: [ -1, 3, 224, 224 ] }]output [ { name: "output" data_type: TYPE_FP32 dims: [ 1000 ] }]Q669: How do you use MLflow?
Section titled “Q669: How do you use MLflow?”Answer:
# Run servermlflow server --backend-store-uri sqlite:///mlflow.db --default-artifact-root ./artifacts
# Trackimport mlflowmlflow.set_experiment("myexperiment")with mlflow.start_run(): mlflow.log_param("alpha", 0.5) mlflow.log_metric("rmse", 0.1) mlflow.log_artifact("model.pkl")Q670: How do you use Kubeflow?
Section titled “Q670: How do you use Kubeflow?”Answer:
# Installkubectl apply -f https://github.com/kubeflow/manifests.git/v1.6-branch/kfdef/kfctl_k8s_istio.v1.6.0.yaml
# PipelineapiVersion: kubeflow.org/v1beta1kind: PipelineRunmetadata: name: my-pipeline-runspec: pipelineRef: name: my-pipeline params: - name: param1 value: value1Q671: How do you use Weave GitOps?
Section titled “Q671: How do you use Weave GitOps?”Answer:
# Installkubectl apply -f https://github.com/weaveworks/weave-gitops/releases/download/v0.9.0/website-and-core.yaml
# Get passwordkubectl get secret -n weave-system weave-gitops-credentials -o jsonpath='{.data.admin}' | base64 -dQ672: How do you use Port?
Section titled “Q672: How do you use Port?”Answer:
# Installport check --port 3003
# Add integrationport integrate github --owner myorg --repo myrepo
# Create entityport create entity --blueprint myblueprint --identifier myentityQ673: How do you use Backstage templater?
Section titled “Q673: How do you use Backstage templater?”Answer:
apiVersion: scaffolder.backstage.io/v1beta3kind: Templatemetadata: name: my-templatespec: owner: myteam type: service parameters: - title: Name properties: name: type: string steps: - id: fetch-template action: fetch:template name: Fetch template input: url: ./template values: name: ${{ parameters.name }}Q674: How do you use Crossplane composition?
Section titled “Q674: How do you use Crossplane composition?”Answer:
apiVersion: apiextensions.crossplane.io/v1kind: Compositionmetadata: name: composition.example.comspec: compositeTypeRef: apiVersion: example.com/v1alpha1 kind: Database patchSets: - name: metadata patches: - fromFieldPath: metadata.labels toFieldPath: metadata.labels resources: - name: rds base: apiVersion: rds.aws.upbound.io/v1beta1 kind: DBInstance spec: forProvider: engine: postgres instanceClass: db.t3.microQ675: How do you use Pulumi Kubernetes operator?
Section titled “Q675: How do you use Pulumi Kubernetes operator?”Answer:
apiVersion: Pulumi.com/v1kind: Programmetadata: name: my-stackspec: stack: production repository: url: https://github.com/myorg/infra commit: main destroyOnFinalDeletion: falseQ676: How do you use CDK8s?
Section titled “Q676: How do you use CDK8s?”Answer:
import { Construct } from 'constructs';import { App, Chart, YamlOutputType } from 'cdk8s';
export class MyChart extends Chart { constructor(scope: Construct, id: string) { super(scope, id);
new KubeDeployment(this, 'deployment', { spec: { replicas: 3, selector: { matchLabels: { app: 'myapp' } }, template: { metadata: { labels: { app: 'myapp' } }, spec: { containers: [{ name: 'myapp', image: 'nginx:latest', ports: [{ containerPort: 80 }] }] } } } }); }}
const app = new App({ outputType: YamlOutputType.FILE });new MyChart(app, 'mychart');app.synth();Q677: How do you use CDK for Terraform?
Section titled “Q677: How do you use CDK for Terraform?”Answer:
import { Construct } from 'constructs';import { App, TerraformStack, TerraformOutput } from 'cdk.tf';import * as Aws from '@cdk.tf/provider/aws';
class MyStack extends TerraformStack { constructor(scope: Construct, id: string) { super(scope, id);
new Aws.provider.AwsProvider(this, 'aws', { region: 'us-east-1' });
const instance = new Aws.instance.Instance(this, 'web', { ami: 'ami-0c55b159cbfafe1f0', instanceType: 't3.micro' });
new TerraformOutput(this, 'publicIp', { value: instance.publicIp }); }}
new App().synth();Q678: How do you use Waypoint?
Section titled “Q678: How do you use Waypoint?”Answer:
project = "myproject"
app "web" { build { use "docker" {} }
deploy { use "kubernetes" { namespace = "default" } }
release { use "docker" {} }}Q679: How do you use Nocalhost?
Section titled “Q679: How do you use Nocalhost?”Answer:
# Installnh install --kubeconfig ~/.kube/config
# Add servicenh add myapp --install 8080
# Dev modenh dev myapp --image myapp:dev
# Forwardnh port-forward myapp 8080:8080Q680: How do you use Garden?
Section titled “Q680: How do you use Garden?”Answer:
kind: Projectname: myprojectenvironments: - name: local defaultNamespace: default - name: dev providers: - name: kubernetes namespace: dev buildMode: kaniko
providers: - name: kubernetes
modules: - name: api type: container build: command: docker build -t myproject/api . deploy: kubectl: manifests: - manifest/deploy.yaml files: - manifest/configmap.yamlQuestions 681-750
Section titled “Questions 681-750”Q681: How do you configure system logging?
Section titled “Q681: How do you configure system logging?”Answer:
# Module$ModLoad imuxsock$ModLoad imjournal
# Template$template RemoteLogs,"/var/log/%HOSTNAME%/%PROGRAMNAME%.log"
# Forward all*.* @@syslog.example.com:514Q682: How do you configure audit logging?
Section titled “Q682: How do you configure audit logging?”Answer:
log_file = /var/log/audit/audit.logmax_log_file = 100max_log_file_action = ROTATE
# /etc/audit/rules.d/audit.rules-w /etc/passwd -p wa -k passwd_changes-w /etc/shadow -p wa -k shadow_changes-w /etc/sudoers -p wa -k sudoers_changesQ683: How do you configure secure logging?
Section titled “Q683: How do you configure secure logging?”Answer:
# Use syslog-ngsource s_system { system(); };destination d_secure { file("/var/log/secure"); };filter f_secure { facility(auth, authpriv); };log { source(s_system); filter(f_secure); destination(d_secure); };Q684: How do you use log analysis tools?
Section titled “Q684: How do you use log analysis tools?”Answer:
# GoAccessgoaccess /var/log/nginx/access.log -o /var/www/html/report.html --real-time-html
# Splunk forwarder# Install and configure/opt/splunkforwarder/bin/splunk start
# ELKfilebeat modules enable nginxfilebeat modules enable systemQ685: How do you configure audit for compliance?
Section titled “Q685: How do you configure audit for compliance?”Answer:
# CIS benchmark rulesauditctl -w /etc/passwd -p wa -k cis_passwdauditctl -w /etc/shadow -p wa -k cis_shadowauditctl -w /etc/group -p wa -k cis_groupauditctl -w /etc/gshadow -p wa -k cis_gshadowauditctl -w /etc/sudoers -p wa -k cis_sudoers
# PCI-DSSauditctl -w /var/log/audit/ -p wa -k pci_auditauditctl -w /etc/pam.d/ -p wa -k pci_pamQ686: How do you implement defense in depth?
Section titled “Q686: How do you implement defense in depth?”Answer:
# Layer 1: Network# Firewall, segmentation, IDS/IPS
# Layer 2: Host# SELinux/AppArmor, hardening, patching
# Layer 3: Application# Input validation, secure coding
# Layer 4: Data# Encryption, access control
# Layer 5: Monitoring# SIEM, logging, alertingQ687: How do you configure intrusion detection?
Section titled “Q687: How do you configure intrusion detection?”Answer:
# Network IDS (Snort)var HOME_NET 192.168.1.0/24alert tcp any any -> $HOME_NET any (msg:"Suspicious traffic"; sid:1000001;)
# Host IDS (AIDE)aide --update
# File integrity (Tripwire)twadmin --create-polfile /etc/tripwire/tw.poltripwire --initQ688: How do you secure containers?
Section titled “Q688: How do you secure containers?”Answer:
# Rootlessusermod -r -s /usr/sbin/nologin dockremap
# Seccompdocker run --security-opt seccomp=default nginx
# AppArmordocker run --security-opt apparmor=profile nginx
# Capabilitiesdocker run --cap-drop ALL --cap-add NET_BIND_SERVICE nginxQ689: How do you secure Kubernetes?
Section titled “Q689: How do you secure Kubernetes?”Answer:
# RBACkubectl create rolebinding admin --clusterrole=admin --group=developers
# Network policieskubectl apply -f network-policy.yaml
# Secrets encryption# Enable encryption at rest
# Pod security# Use PodSecurityPolicy or Admission ControllerQ690: How do you secure the kernel?
Section titled “Q690: How do you secure the kernel?”Answer:
# Disable unused filesystemsinstall cramfs /bin/trueinstall squashfs /bin/trueinstall vfat /bin/true
# Network hardeningnet.ipv4.conf.all.rp_filter = 1net.ipv4.conf.default.rp_filter = 1net.ipv4.icmp_echo_ignore_broadcasts = 1Q691: How do you implement zero trust?
Section titled “Q691: How do you implement zero trust?”Answer:
# Identity verification# mTLS for service communication# JWT tokens with short expiry
# Network segmentation# Microsegmentation with Calico/Cilium
# Device trust# Certificate-based authentication
# Continuous verification# Real-time risk assessmentQ692: How do you implement secrets management?
Section titled “Q692: How do you implement secrets management?”Answer:
# HashiCorp Vault# Installvault server -dev
# Store secretvault kv put secret/myapp db_password=secret123
# Use in Kubernetes# External Secrets Operator
# AWS Secrets Manageraws secretsmanager create-secret --name myapp/db-password --secret-string '{"username":"admin","password":"secret"}'Q693: How do you implement PKI?
Section titled “Q693: How do you implement PKI?”Answer:
# Create CAopenssl genrsa -out ca.key 4096openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
# Issue certificateopenssl genrsa -out server.key 2048openssl req -new -key server.key -out server.csropenssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256Q694: How do you implement TLS everywhere?
Section titled “Q694: How do you implement TLS everywhere?”Answer:
# Nginxserver { listen 443 ssl http2; ssl_certificate /etc/ssl/certs/server.crt; ssl_certificate_key /etc/ssl/private/server.key; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5;}
# Database# PostgreSQL: ssl = on# MySQL: require sslQ695: How do you implement network segmentation?
Section titled “Q695: How do you implement network segmentation?”Answer:
# VLANsvconfig add eth0 100 # DMZvconfig add eth0 200 # Internal
# Firewalls# Perimeter# Application# Database
# Kubernetes namespaceskubectl create namespace productionkubectl label namespace production env=productionQ696: How do you implement backup strategy?
Section titled “Q696: How do you implement backup strategy?”Answer:
# 3-2-1 Rule# 3 copies of data# 2 different media types# 1 offsite
# Backup types# Full: daily# Incremental: every 4 hours# Archive: monthly
# Test restore# MonthlyQ697: How do you implement disaster recovery?
Section titled “Q697: How do you implement disaster recovery?”Answer:
# RTO (Recovery Time Objective)# How long can we be down?
# RPO (Recovery Point Objective)# How much data loss is acceptable?
# DR site# Active-passive# Active-active
# Failover# DNS failover# Load balancer health checksQ698: How do you implement high availability?
Section titled “Q698: How do you implement high availability?”Answer:
# Load balancer# HAProxy, NGINX
# Clustering# Pacemaker/Corosync# Keepalived
# Database# Master-slave# Multi-master
# Application# Stateless design# Session affinityQ699: How do you implement capacity planning?
Section titled “Q699: How do you implement capacity planning?”Answer:
# Monitor trends# CPU, Memory, Disk, Network
# Growth rate# Monthly review
# Planning# Add capacity at 70% utilization
# Auto-scaling# Cloud native: Cluster Autoscaler# HPA/VPAQ700: How do you implement incident response?
Section titled “Q700: How do you implement incident response?”Answer:
# Preparation# Runbooks# Contact list
# Detection# Monitoring alerts# Log analysis
# Containment# Isolate affected systems# Block attacker
# Eradication# Remove malware# Patch vulnerabilities
# Recovery# Restore from backup# Verify system integrity
# Lessons learned# Post-incident reviewContinue with questions 701-1000 covering more advanced topics…