云原生高级实验

任务需求:客户端通过访问 www.nihao.com 后,能够通过 dns 域名解析,访问到 nginx 服务中由 nfs 共享的首页文件,内容为:Very good, you have successfully set up the system. 各个主机能够实现时间同步,并且都开启防火墙来保证服务安装。

主机规划:

作用 系统 IP 主机名 软件
web 服务器 redhat9.5 192.168.72.8 web nginx
nfs 服务器 redhat9.5 192.168.72.9 nfs nfs-utils
DNS 主服务器 redhat9.5 192.168.72.18 dns1 bind
DNS 从服务器 redhat9.5 192.168.72.28 dns2 bind
客户端 redhat9.5 192.168.72.7 client bind-utils

1.初始环境配置

web:

bash 复制代码
hostnamectl hostname web
nmcli c modify ens160 ipv4.method manual ipv4.addresses 10.10.10.8/24 ipv4.gateway 10.10.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli c up ens160
setenforce 0

nfs:

bash 复制代码
hostnamectl hostname nfs
nmcli c modify ens160 ipv4.method manual ipv4.addresses 10.10.10.9/24 ipv4.gateway 192.168.72.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli c up ens160
setenforce 0

dns1:

bash 复制代码
hostnamectl hostname dns1
nmcli c modify ens160 ipv4.method manual ipv4.addresses 10.10.10.18/24 ipv4.gateway 10.10.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli c up ens160
setenforce 0

dns2:

bash 复制代码
hostnamectl hostname dns2
nmcli c modify ens160  ipv4.method manual ipv4.addresses 10.10.10.28/24 ipv4.gateway 10.10.10.2 ipv4.dns 223.5.5.5 connection.autoconnect yes
nmcli c up ens160
setenforce 0

client:

bash 复制代码
hostnamectl hostname client
nmcli c modify ens160 ipv4.method manual  ipv4.addresses 10.10.10.7/24 ipv4.gateway 10.10.10.2 ipv4.dns "10.10.10.18 10.10.10.28" connection.autoconnect yes
nmcli c up ens160
setenforce 0

2.下载相关服务

web:

bash 复制代码
vim /etc/yum.repos.d/dnf.repo
[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0

mmount /dev/sr0 /mnt
dnf install nginx -y

nfs:

bash 复制代码
vim /etc/yum.repos.d/dnf.repo
[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0

mmount /dev/sr0 /mnt
dnf install nfs-utils -y 

dns1:

bash 复制代码
vim /etc/yum.repos.d/dnf.repo
[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0

mmount /dev/sr0 /mnt
dnf install bind -y

dns2:

bash 复制代码
vim /etc/yum.repos.d/dnf.repo
[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0

mmount /dev/sr0 /mnt
dnf install bind -y

client:

bash 复制代码
vim /etc/yum.repos.d/dnf.repo
[BaseOS]
name=BaseOS
baseurl=/mnt/BaseOS
gpgcheck=0
[AppStream]
name=AppStream
baseurl=/mnt/AppStream
gpgcheck=0

mmount /dev/sr0 /mnt
dnf install bind-utils -y

3.配置web服务

修改配置文件

bash 复制代码
echo "welcome to nginx" > /usr/share/nginx/html/index.html 
  firewall-cmd --permanent --add-service=http
  firewall-cmd --reload 
  systemctl start nginx

nfs网络挂载

bash 复制代码
 dnf install -y nfs-utils
   mkdir /data/nfs -p
   mount -t nfs 10.10.10.9:/nfs/data /data/nfs
    df -h
   echo " write nfs" > /data/nfs/test
   cat /data/nfs/test 
   vim /etc/nginx/conf.d/nfs.conf
server{
	server_name 10.10.10.8;
	root /data/nfs;
	access_log /var/log/nginx/access_log
	error_log /var/log/nginx/error_log
}

时间同步

bash 复制代码
dnf install chrony -y
   systemctl status chronyd
    chronyc tracking 
    chronyc sources
    vim /etc/chrony.conf 


bash 复制代码
 systemctl restart chronyd
    chronyc sources

4.配置nfs服务

bash 复制代码
mkdir /nfs/data -p
   vim /etc/exports
   cat /etc/exports
   chmod o+w /nfs/data
    chmod o+w /nfs/data
   showmount -e 10.10.10.9
    firewall-cmd --permanent --add-service=nfs
    firewall-cmd --reload
    systemctl enable --now nfs-server.service 
cat /nfs/data/test 


时间同步

bash 复制代码
dnf install chrony
systemctl status chronyd
chronyc tracking 
chronyc sources
vim /etc/chrony.conf 
firewall-cmd --permanent --add-service=ntp
firewall-cmd --relaod
systemctl start chronyd.service 


5.配置dns主服务器

bash 复制代码
cat /etc/named.conf 
options {
	listen-on port 53 { 10.10.10.18; };
	directory 	"/var/named";
	allow-query     { any; };
};
zone "haha.com" IN {
	type master;
	file "haha.com";
};
bash 复制代码
cat /var/named/haha.com
$TTL 	1D
@ 	IN 	SOA 	@	 admin.haha.com. (0 1D 2H 3W 2D)
	IN 	NS 	 ns1
	IN 	NS 	 ns2
ns1 	IN 	A 	10.10.10.18
ns2 	IN 	A 	10.10.10.28
www 	IN 	A 	10.10.10.8

放行服务

bash 复制代码
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload 

时间同步

bash 复制代码
dnf install chrony -y
   vim /etc/chrony.conf 
   firewall-cmd --permanent --add-service=ntp
    firewall-cmd --reload 
    systemctl restart chronyd.service 
    chronyc sources

dig 测试

bash 复制代码
dig -t NS haha.com @10.10.10.18

; <<>> DiG 9.16.23-RH <<>> -t NS haha.com @10.10.10.18 ;; global

options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status:

NOERROR, id: 39872 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2,

AUTHORITY: 0, ADDITIONAL: 3

;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ; COOKIE:

d326c928a6c990070100000067d919cadf5565a60133feba (good) ;; QUESTION

SECTION: ;haha.com. IN NS

;; ANSWER SECTION: haha.com. 86400 IN NS ns2.haha.com.

haha.com. 86400 IN NS ns1.haha.com.

;; ADDITIONAL SECTION: ns1.haha.com. 86400 IN A 10.10.10.18

ns2.haha.com. 86400 IN A 10.10.10.28

6.dns从服务器

修改主配置文件

bash 复制代码
cat /etc/named.conf
options {
	listen-on port 53 { 10.10.10.28; };
	directory 	"/var/named";
};
zone "haha.com" IN {
	type slave;
	masters {10.10.10.18; };
	file "slaves/haha.com";
};

放行服务

bash 复制代码
firewall-cmd --permanent --add-service=dns
 firewall-cmd --reload 
systemctl enable named --now

root@dns2 \~# ls /var/named/slaves/

haha.com

·时间同步

bash 复制代码
dnf install chrony -y
  vim /etc/chrony.conf 
   firewall-cmd --permanent --add-service=ntp
   firewall-cmd --reload
    systemctl restart chronyd.service 
   chronyc sources

root@dns2 \~# chronyc sources MS Name/IP address Stratum Poll

Reach LastRx Last sample

=============================================================================== ^* 10.10.10.9 3 6 17 59 -5753ns -89us

+/- 135ms

7.配置客户端

时间同步

bash 复制代码
vim /etc/chrony.conf 
 firewall-cmd --permanent --add-service=ntp
firewall-cmd --reload 
 systemctl restart chronyd.service 
 chronyc sources

MS Name/IP address Stratum Poll Reach LastRx Last sample

=============================================================================== ^* 10.10.10.9 3 6 17 2 -112us -180us

+/- 141ms

测试客户端

bash 复制代码
nmcli c show ens160 | grep ipv4.dns

ipv4.dns: 10.10.10.18,10.10.10.28

ipv4.dns-search: -- ipv4.dns-options:

-- ipv4.dns-priority: 0

bash 复制代码
ping www.haha.com

PING www.haha.com (10.10.10.8) 56(84) bytes of data. 64 bytes from

10.10.10.8 (10.10.10.8): icmp_seq=1 ttl=64 time=1.32 ms 64 bytes from 10.10.10.8 (10.10.10.8): icmp_seq=2 ttl=64 time=2.29 ms 64 bytes from 10.10.10.8 (10.10.10.8): icmp_seq=3 ttl=64 time=2.46 ms

相关推荐
阿里云云原生13 小时前
深入内核:拆解 OpenTelemetry eBPF 探针如何优雅地“透视”多语言微服务?
云原生
大树8813 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠13 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质13 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工14 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智15 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_15 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉16 小时前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
AC赳赳老秦17 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj17 小时前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes