当前位置: 首页 > news >正文

9.24-k8s服务发布

Ingress

使用域名发布 K8S 服务

部署项目

一、先部署mariadb

[root@k8s-master ~]# mkdir aaa
[root@k8s-master ~]# cd aaa/
[root@k8s-master aaa]# # 先部署mariadb
[root@k8s-master aaa]# # configmap
[root@k8s-master aaa]# vim mariadb-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: mariadb-configmap
data:USER: "wp"PASSWORD: "123"ROOT_PASSWORD: "123"DATABASE: "db"[root@k8s-master aaa]# kubectl create -f mariadb-configmap.yaml 
configmap/mariadb-configmap created
[root@k8s-master aaa]# # deployment
[root@k8s-master aaa]# vim mariadb.deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: mariadb-deploymentlabels:app: mariadb-deployment
spec:replicas: 1selector:matchLabels:app: mariadb-deploymenttemplate:metadata:labels:app: mariadb-deploymentspec:containers:-       name: mariadbimage: docker.io/library/mariadb:latestimagePullPolicy: Neverports:-       name: mariadbportcontainerPort: 3306envFrom:-       prefix: "MARIADB_"configMapRef:name: mariadb-configmap[root@k8s-master aaa]# kubectl create -f mariadb.deployment.yaml 
deployment.apps/mariadb-deployment created
[root@k8s-master aaa]# kubectl get pod
NAME                                  READY   STATUS             RESTARTS      AGE
cluster-test0-58689d5d5d-7c49r        1/1     Running            4 (16m ago)   3d2h
haha-96567ff6f-r2mh5                  0/1     ImagePullBackOff   0             3d2h
mariadb-deployment-5bf6d9f98c-9mddb   1/1     Running            0             22s
wordpress-7695bd58f4-42hx2            1/1     Running            1 (16m ago)   2d23h
wordpress-7695bd58f4-dqp8q            1/1     Running            1 (16m ago)   2d23h
wordpress-7695bd58f4-v8j7l            1/1     Running            1 (16m ago)   2d23h
[root@k8s-master aaa]# kubectl get po -o wide
NAME                                  READY   STATUS             RESTARTS      AGE     IP              NODE         NOMINATED NODE   READINESS GATES
cluster-test0-58689d5d5d-7c49r        1/1     Running            4 (20m ago)   3d2h    172.16.58.193   k8s-node02   <none>           <none>
haha-96567ff6f-r2mh5                  0/1     ImagePullBackOff   0             3d2h    172.16.85.234   k8s-node01   <none>           <none>
mariadb-deployment-5bf6d9f98c-9mddb   1/1     Running            0             4m34s   172.16.85.237   k8s-node01   <none>           <none>
wordpress-7695bd58f4-42hx2            1/1     Running            1 (20m ago)   2d23h   172.16.58.255   k8s-node02   <none>           <none>
wordpress-7695bd58f4-dqp8q            1/1     Running            1 (20m ago)   2d23h   172.16.85.233   k8s-node01   <none>           <none>
wordpress-7695bd58f4-v8j7l            1/1     Running            1 (20m ago)   2d23h   172.16.85.235   k8s-node01   <none>           <none>[root@k8s-master aaa]# mysql -h 172.16.85.237 -p123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 11.5.2-MariaDB-ubu2404 mariadb.org binary distributionCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> exit
Bye[root@k8s-master aaa]# vim mariadb-service.yaml
[root@k8s-master aaa]# kubectl create -f mariadb-service.yaml 
service/mariadb-service created
[root@k8s-master aaa]# kubectl get svc
NAME              TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes        ClusterIP   10.96.0.1       <none>        443/TCP          12d
mariadb-service   NodePort    10.96.148.212   <none>        3306:30117/TCP   15s
[root@k8s-master aaa]# kubectl get pod
NAME                                  READY   STATUS             RESTARTS      AGE
cluster-test0-58689d5d5d-7c49r        1/1     Running            4 (33m ago)   3d2h
haha-96567ff6f-r2mh5                  0/1     ImagePullBackOff   0             3d2h
mariadb-deployment-5bf6d9f98c-9mddb   1/1     Running            0             17m
wordpress-7695bd58f4-42hx2            1/1     Running            1 (33m ago)   2d23h
wordpress-7695bd58f4-dqp8q            1/1     Running            1 (33m ago)   2d23h
wordpress-7695bd58f4-v8j7l            1/1     Running            1 (33m ago)   2d23h

二、在远程登录工具上进行登录测试,端口号为30117,用户为root,密码为123

三、使用测试工具:

[root@k8s-master aaa]# kubectl exec -it pods/cluster-test0-58689d5d5d-7c49r -- bash

四、部署wordpress

[root@k8s-master aaa]# vim wordpress-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:name: wordpress-config
data:NAME: "db"USER: "wp"PASSWORD: "123"HOST: "mariadb-service"[root@k8s-master aaa]# kubectl create -f wordpress-configmap.yaml 
configmap/wordpress-config created
[root@k8s-master aaa]# kubectl get cm
NAME                DATA   AGE
kube-root-ca.crt    1      12d
mariadb-cm          4      3d2h
mariadb-configmap   4      50m
wordpress-cm        4      3d
wordpress-config    4      38s
[root@k8s-master aaa]# vim wordpress-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: wordpress-deploymentlabels:app: wordpress-deployment
spec:replicas: 2selector:matchLabels:app: wordpress-deploymenttemplate:metadata:labels:app: wordpress-deploymentspec:containers:-       name: wpimage: docker.io/library/wordpress:latestimagePullPolicy: Neverports:-       name: wordpressportcontainerPort: 80envFrom:-        prefix: "WORDPRESS_DB_"configMapRef:name: wordpress-config[root@k8s-master aaa]# kubectl create -f wordpress-deployment.yaml 
deployment.apps/wordpress-deployment created
[root@k8s-master aaa]# kubectl get pod
NAME                                    READY   STATUS             RESTARTS        AGE
cluster-test0-58689d5d5d-7c49r          1/1     Running            5 (9m35s ago)   3d3h
haha-96567ff6f-r2mh5                    0/1     ImagePullBackOff   0               3d3h
mariadb-deployment-5bf6d9f98c-9mddb     1/1     Running            0               54m
wordpress-7695bd58f4-42hx2              1/1     Running            1 (70m ago)     3d
wordpress-7695bd58f4-dqp8q              1/1     Running            1 (70m ago)     3d
wordpress-7695bd58f4-v8j7l              1/1     Running            1 (70m ago)     3d
wordpress-deployment-555685954b-52lbs   1/1     Running            0               15s
wordpress-deployment-555685954b-d8qqz   1/1     Running            0               15s
[root@k8s-master aaa]# vim wordpress-service.yaml
apiVersion: v1
kind: Service
metadata:name: wordpress-deployment
spec:selector:app: wordpress-deploymentports:-       name: httpport: 80targetPort: 80nodePort: 32000protocol: TCPtype: NodePort[root@k8s-master aaa]# kubectl create -f wordpress-service.yaml 
service/wordpress-deployment created
[root@k8s-master aaa]# kubectl get svc
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
kubernetes             ClusterIP   10.96.0.1       <none>        443/TCP          12d
mariadb-service        NodePort    10.96.148.212   <none>        3306:30117/TCP   46m
wordpress-deployment   NodePort    10.96.26.205    <none>        80:32000/TCP     1s

五、浏览器访问本机地址: 192.168.2.66:32000

六、查看db数据中的表

表中是空的

# 使用测试工具测试
[root@k8s-master aaa]# kubectl exec -it cluster-test0-58689d5d5d-7c49r -- bash
(01:10 cluster-test0-58689d5d5d-7c49r:/) nslookup mariadb-service
Server:		10.96.0.10
Address:	10.96.0.10#53Name:	mariadb-service.default.svc.cluster.local
Address: 10.96.148.212(01:10 cluster-test0-58689d5d5d-7c49r:/) exit
exit
您在 /var/spool/mail/root 中有新邮件# 查看节点
[root@k8s-master aaa]# kubectl get po
NAME                                    READY   STATUS    RESTARTS      AGE
cluster-test0-58689d5d5d-7c49r          1/1     Running   6 (21m ago)   3d18h
mariadb-deployment-5bf6d9f98c-9mddb     1/1     Running   1 (21m ago)   16h
wordpress-7695bd58f4-42hx2              1/1     Running   2 (21m ago)   3d16h
wordpress-7695bd58f4-dqp8q              1/1     Running   2 (21m ago)   3d16h
wordpress-7695bd58f4-v8j7l              1/1     Running   2 (21m ago)   3d16h
wordpress-deployment-555685954b-52lbs   1/1     Running   1 (21m ago)   15h
wordpress-deployment-555685954b-d8qqz   1/1     Running   1 (21m ago)   15h# 查看结点的信息
[root@k8s-master aaa]# kubectl get po -o wide
NAME                                    READY   STATUS    RESTARTS      AGE     IP              NODE         NOMINATED NODE   READINESS GATES
cluster-test0-58689d5d5d-7c49r          1/1     Running   6 (22m ago)   3d18h   172.16.58.200   k8s-node02   <none>           <none>
mariadb-deployment-5bf6d9f98c-9mddb     1/1     Running   1 (22m ago)   16h     172.16.85.240   k8s-node01   <none>           <none>
wordpress-7695bd58f4-42hx2              1/1     Running   2 (22m ago)   3d16h   172.16.58.201   k8s-node02   <none>           <none>
wordpress-7695bd58f4-dqp8q              1/1     Running   2 (22m ago)   3d16h   172.16.85.243   k8s-node01   <none>           <none>
wordpress-7695bd58f4-v8j7l              1/1     Running   2 (22m ago)   3d16h   172.16.85.242   k8s-node01   <none>           <none>
wordpress-deployment-555685954b-52lbs   1/1     Running   1 (22m ago)   15h     172.16.58.198   k8s-node02   <none>           <none>
wordpress-deployment-555685954b-d8qqz   1/1     Running   1 (22m ago)   15h     172.16.85.241   k8s-node01   <none>           <none># 登录数据库
[root@k8s-master aaa]# mysql -h 172.16.85.240 -uroot -p123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 11.5.2-MariaDB-ubu2404 mariadb.org binary distributionCopyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| db                 |
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.01 sec)MariaDB [(none)]> use db
Database changed# 表是空的
MariaDB [db]> show tables;
Empty set (0.00 sec)

七、在访问到的页面进行登录

192.168.2.66:32000

八、db数据库中就有数据了

MariaDB [db]> show tables;
+-----------------------+
| Tables_in_db          |
+-----------------------+
| wp_commentmeta        |
| wp_comments           |
| wp_links              |
| wp_options            |
| wp_postmeta           |
| wp_posts              |
| wp_term_relationships |
| wp_term_taxonomy      |
| wp_termmeta           |
| wp_terms              |
| wp_usermeta           |
| wp_users              |
+-----------------------+
12 rows in set (0.00 sec)MariaDB [db]> select * wp_users;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'wp_users' at line 1
MariaDB [db]> select * from wp_users;
+----+------------+------------------------------------+---------------+------------+---------------------------+---------------------+---------------------+-------------+--------------+
| ID | user_login | user_pass                          | user_nicename | user_email | user_url                  | user_registered     | user_activation_key | user_status | display_name |
+----+------------+------------------------------------+---------------+------------+---------------------------+---------------------+---------------------+-------------+--------------+
|  1 | haha       | $P$B9wSyumd047LAk6T9sM5oO7G8IhnsS. | haha          | 123@qq.com | http://192.168.2.66:32000 | 2024-09-24 01:15:54 |                     |           0 | haha         |
+----+------------+------------------------------------+---------------+------------+---------------------------+---------------------+---------------------+-------------+--------------+
1 row in set (0.00 sec)MariaDB [db]> exit
Bye

九、在远程登录工具中也可以看到数据

十、安装 Ingress Contorller

注册 · 语雀 (yuque.com)](注册 · 语雀)

十一、下载附件再导入到服务器内,再进行安装

[root@k8s-master ~]# vim ingress.yaml
[root@k8s-master ~]# kubectl create -f ingress.yaml 
namespace/ingress-nginx created
serviceaccount/ingress-nginx created
serviceaccount/ingress-nginx-admission created
role.rbac.authorization.k8s.io/ingress-nginx created
role.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrole.rbac.authorization.k8s.io/ingress-nginx created
clusterrole.rbac.authorization.k8s.io/ingress-nginx-admission created
rolebinding.rbac.authorization.k8s.io/ingress-nginx created
rolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx created
clusterrolebinding.rbac.authorization.k8s.io/ingress-nginx-admission created
configmap/ingress-nginx-controller created
service/ingress-nginx-controller created
service/ingress-nginx-controller-admission created
deployment.apps/ingress-nginx-controller created
job.batch/ingress-nginx-admission-create created
job.batch/ingress-nginx-admission-patch created
ingressclass.networking.k8s.io/nginx created
validatingwebhookconfiguration.admissionregistration.k8s.io/ingress-nginx-admission created
[root@k8s-master ~]# kubectl get po -n ingress-nginx 
NAME                                        READY   STATUS      RESTARTS   AGE
ingress-nginx-admission-create-6hj4c        0/1     Completed   0          71s
ingress-nginx-admission-patch-bt7mj         0/1     Completed   0          71s
ingress-nginx-controller-674f66cf96-lhg8z   1/1     Running     0          72s
[root@k8s-master ~]# kubectl describe  pod -n ingress-nginx ingress-nginx-controller-674f66cf96-lhg8z 
[root@k8s-master ~]# kubectl get service -A
NAMESPACE              NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
default                kubernetes                           ClusterIP   10.96.0.1       <none>        443/TCP                      12d
default                mariadb-service                      NodePort    10.96.148.212   <none>        3306:30117/TCP               17h
default                wordpress-deployment                 NodePort    10.96.26.205    <none>        80:32000/TCP                 16h
ingress-nginx          ingress-nginx-controller             NodePort    10.96.124.77    <none>        80:32540/TCP,443:32218/TCP   4m7s
ingress-nginx          ingress-nginx-controller-admission   ClusterIP   10.96.175.242   <none>        443/TCP                      4m7s
kube-system            kube-dns                             ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP,9153/TCP       12d
kube-system            metrics-server                       ClusterIP   10.96.212.31    <none>        443/TCP                      11d
kubernetes-dashboard   dashboard-metrics-scraper            ClusterIP   10.96.51.222    <none>        8000/TCP                     11d
kubernetes-dashboard   kubernetes-dashboard                 NodePort    10.96.242.161   <none>        443:30754/TCP                11d
[root@k8s-master ~]# cd pods/
# 创建ingress
[root@k8s-master pods]# vim test0054.yaml
[root@k8s-master pods]# kubectl create -f test0054.yaml 
ingress.networking.k8s.io/nginx-ingress created
[root@k8s-master pods]# kubectl get service -A
NAMESPACE              NAME                                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                      AGE
default                kubernetes                           ClusterIP   10.96.0.1       <none>        443/TCP                      12d
default                mariadb-service                      NodePort    10.96.148.212   <none>        3306:30117/TCP               21h
default                wordpress-service                    NodePort    10.96.126.255   <none>        80:32000/TCP                 114m
ingress-nginx          ingress-nginx-controller             NodePort    10.96.124.77    <none>        80:32540/TCP,443:32218/TCP   3h42m
ingress-nginx          ingress-nginx-controller-admission   ClusterIP   10.96.175.242   <none>        443/TCP                      3h42m
kube-system            kube-dns                             ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP,9153/TCP       12d
kube-system            metrics-server                       ClusterIP   10.96.212.31    <none>        443/TCP                      12d
kubernetes-dashboard   dashboard-metrics-scraper            ClusterIP   10.96.51.222    <none>        8000/TCP                     12d
kubernetes-dashboard   kubernetes-dashboard                 NodePort    10.96.242.161   <none>        443:30754/TCP                12d

十二、访问测试

(1)修改hosts文件

(2)测试ip

访问 IP+Ingress 映射的端口是无法进入后端服务器的

(3)只有访问先前定义的域名+端口才可访问到后端服务器

本次实战域名服务器为:wp-web.com:30080

后续论坛网站自行搭建

http://www.lryc.cn/news/450176.html

相关文章:

  • UI设计师面试整理-作品集展示
  • CMU 10423 Generative AI:lec10(few-shot、提示工程、上下文学习)
  • 做数据抓取工作要如何选择ip池
  • 防止电脑电池老化,禁止usb或者ac接口调试时充电
  • 智权半导体/SmartDV力助高速发展的中国RISC-V CPU IP厂商走上高质量发展之道
  • 利用vue-capper封装一个可以函数式调用图片裁剪组件
  • 在系统开发中提升 Excel 数据导出一致性与可维护性的统一规范与最佳实践
  • SpringAOP学习
  • 智能网联汽车飞速发展,安全危机竟如影随形,如何破局?
  • Android常用C++特性之std::function
  • 人工智能与机器学习原理精解【27】
  • XXL-JOB在SpringBoot中的集成
  • 前端工程规范-3:CSS规范(Stylelint)
  • Qt系列-1.Qt安装
  • 《自控原理》最小相位系统
  • SpringBoot3脚手架
  • 【C语言软开面经】
  • YOLOv11训练自己的数据集(从代码下载到实例测试)
  • HTML粉色烟花秀
  • 从零开发操作系统
  • SigmaStudio中部分滤波器算法有效性频谱分析
  • ArcGIS与ArcGIS Pro去除在线地图服务名单
  • 滚雪球学MySQL[10.1讲]:常见问题与解决
  • 利用 Llama-3.1-Nemotron-51B 推进精度-效率前沿的发展
  • SpringBoot+Thymeleaf发票系统
  • Updates were rejected because the tip of your current branch is behind 的解决方法
  • Redis桌面工具:Tiny RDM
  • 【Java】酒店管理系统
  • 【数据库】Java 中 MongoDB 使用指南:步骤与方法介绍
  • MySQL之内置函数