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-deployment
        labels:
                app: mariadb-deployment
spec:
        replicas: 1
        selector:
                matchLabels:
                        app: mariadb-deployment
        template:
                metadata:
                        labels:
                                app: mariadb-deployment
                spec:
                        containers:
                        -       name: mariadb
                                image: docker.io/library/mariadb:latest
                                imagePullPolicy: Never
                                ports:
                                -       name: mariadbport
                                        containerPort: 3306
                                envFrom:
                                -       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 distribution

Copyright (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-deployment
        labels:
                app: wordpress-deployment
spec:
        replicas: 2
        selector:
                matchLabels:
                        app: wordpress-deployment
        template:
                metadata:
                        labels:
                                app: wordpress-deployment
                spec:
                        containers:
                        -       name: wp
                                image: docker.io/library/wordpress:latest
                                imagePullPolicy: Never
                                ports:
                                -       name: wordpressport
                                        containerPort: 80
                                envFrom:
                                -        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-deployment
        ports:
        -       name: http
                port: 80
                targetPort: 80
                nodePort: 32000
                protocol: TCP
        type: 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#53

Name:	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 distribution

Copyright (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

后续论坛网站自行搭建

相关推荐
魏 无羡6 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
Karoku0666 小时前
【k8s集群应用】kubeadm1.20高可用部署(3master)
运维·docker·云原生·容器·kubernetes
凌虚8 小时前
Kubernetes APF(API 优先级和公平调度)简介
后端·程序员·kubernetes
探索云原生11 小时前
在 K8S 中创建 Pod 是如何使用到 GPU 的: nvidia device plugin 源码分析
ai·云原生·kubernetes·go·gpu
启明真纳11 小时前
elasticache备份
运维·elasticsearch·云原生·kubernetes
jwolf213 小时前
基于K8S的微服务:一、服务发现,负载均衡测试(附calico网络问题解决)
微服务·kubernetes·服务发现
nangonghen13 小时前
在华为云通过operator部署Doris v2.1集群
kubernetes·华为云·doris·operator
会飞的土拨鼠呀15 小时前
chart文件结构
运维·云原生·kubernetes
自在的LEE18 小时前
当 Go 遇上 Windows:15.625ms 的时间更新困局
后端·kubernetes·go
云川之下21 小时前
【k8s】访问etcd
kubernetes·etcd