云原生高级实验

任务需求:客户端通过访问 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

相关推荐
AI攻城狮29 分钟前
OpenClaw 里 TAVILY_API_KEY 明明写在 ~/.bashrc,为什么还是失效?一次完整排查与修复
人工智能·云原生·aigc
阿里云云原生20 小时前
零配置部署顶级模型!函数计算一键解锁 Qwen3.5
云原生
舒一笑21 小时前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
AI攻城狮1 天前
Kimi Bot + OpenClaw 完整配置指南:5 步实现本地 AI Agent 集成
人工智能·云原生·aigc
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
梦想很大很大2 天前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair2 天前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
AI攻城狮2 天前
RAG Chunking 为什么这么难?5 大挑战 + 最佳实践指南
人工智能·云原生·aigc
叶落阁主2 天前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
甲鱼9293 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维