云原生高级实验

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

相关推荐
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
分布式存储与RustFS2 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
AI职业加油站2 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
codeejun2 天前
每日一Go·MySQL-5、锁机制全解析
云原生·golang
此冬歌咏2 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅2 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren2 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
布裘2 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境
懂软件的胡子个哥2 天前
微信机器人为什么需要“回复候选”而不是所有 AI 内容直接发送
运维·微信·自动化·wechatapi·个人微信号二次开发