K8s NetworkPolicyLimitRange和ResourceQuota详解K8s运行ZooKeeper,Mysql,Jenkins集群K8s集群及应用监控Prometheus

Posted yong_shh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8s NetworkPolicyLimitRange和ResourceQuota详解K8s运行ZooKeeper,Mysql,Jenkins集群K8s集群及应用监控Prometheus相关的知识,希望对你有一定的参考价值。

1. 基于 NetworkPolicy 限制 magedu namespace 中的所有 pod 不能跨 namespace 访问 (只能访问当前 namespace 中的所有 pod)。

#在default下创建2个deploy, centos7-default和nginx1-default

root@k8s-master1:~/20230328# vim centos7-default.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: centos7-default
  name: centos7-default
  namespace: default
spec:
  replicas: 1
  selector:
    matchLabels:
      app: centos7-default
  template:
    metadata:
      labels:
        app: centos7-default
    spec:
      containers:
      - image: centos:centos7.9.2009
        name: centos
        command:
          - sleep
          - "50000000"
root@k8s-master1:~/20230328# kubectl apply -f centos7-default.yaml 
deployment.apps/centos7-default created
root@k8s-master1:~/20230328# kubectl  create deploy nginx1-default --image=nginx
deployment.apps/nginx1-default created

#查看default下创建的deploy

root@k8s-master1:~/20230328# kubectl get pods --show-labels
NAME                               READY   STATUS    RESTARTS   AGE     LABELS
centos7-default-7cff9984c9-t7sdp   1/1     Running   0          9m50s   app=centos7-default,pod-template-hash=7cff9984c9
nginx1-default-76d65dfb67-gsdm5    1/1     Running   0          15s     app=nginx1-default,pod-template-hash=76d65dfb67
root@k8s-master1:~/20230328# kubectl get pods -o wide
NAME                               READY   STATUS    RESTARTS   AGE   IP               NODE            NOMINATED NODE   READINESS GATES
centos7-default-7cff9984c9-t7sdp   1/1     Running   0          10m   10.200.218.71    192.168.7.113   <none>           <none>
nginx1-default-76d65dfb67-gsdm5    1/1     Running   0          75s   10.200.151.200   192.168.7.112   <none>           <none>

#创建namespace magedu,并在此空间下创建2个deploy

root@k8s-master1:~/20230328# cat centos7-magedu.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: centos7-magedu
  name: centos7-magedu
  namespace: magedu
spec:
  replicas: 1
  selector:
    matchLabels:
      app: centos7-magedu
  template:
    metadata:
      labels:
        app: centos7-magedu
    spec:
      containers:
      - image: centos:centos7.9.2009
        name: centos
        command:
          - sleep
          - "50000000"
root@k8s-master1:~/20230328# kubectl apply -f centos7-magedu.yaml 
deployment.apps/centos7-magedu created

root@k8s-master1:~/20230328# kubectl  create deploy nginx2-magedu --image=nginx --namespace magedu
deployment.apps/nginx2-magedu created

#查看magedu下创建的资源

root@k8s-master1:~/20230328# kubectl get pods -n magedu --show-labels
NAME                             READY   STATUS    RESTARTS   AGE     LABELS
centos7-magedu-bc6b4665f-9g6zh   1/1     Running   0          25m     app=centos7-magedu,pod-template-hash=bc6b4665f
nginx2-magedu-5ddc8898d6-v98v4   1/1     Running   0          7m54s   app=nginx2-magedu,pod-template-hash=5ddc8898d6
root@k8s-master1:~/20230328# kubectl get pods -n magedu -o wide
NAME                             READY   STATUS    RESTARTS   AGE     IP               NODE            NOMINATED NODE   READINESS GATES
centos7-magedu-bc6b4665f-9g6zh   1/1     Running   0          24m     10.200.218.1     192.168.7.111   <none>           <none>
nginx2-magedu-5ddc8898d6-v98v4   1/1     Running   0          7m45s   10.200.151.199   192.168.7.112   <none>           <none>

#进入default空间下centos7-default pod访问magedu空间下nginx2-magedu pod服务,可正常访问

root@k8s-master1:~/20230328# kubectl exec -it centos7-default-7cff9984c9-t7sdp bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
[root@centos7-default-7cff9984c9-t7sdp /]# curl 10.200.151.199
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html  color-scheme: light dark; 
body  width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; 
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

#进入magedu空间下centos7-magedu的pod,访问default空间下nginx1-default服务,访问正常

root@k8s-master1:~/20230328# kubectl exec -it centos7-magedu-bc6b4665f-9g6zh bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
[root@centos7-magedu-bc6b4665f-9g6zh /]# curl 10.200.151.200
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html  color-scheme: light dark; 
body  width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; 
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

#创建networkpolicy

root@k8s-master1:~# vi Egress-magedu.yaml
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: egress-access-networkpolicy
  namespace: magedu
spec:
  policyTypes:
  - Egress
  podSelector:
    matchLabels: 
  egress:
    - to:
      - podSelector:
          matchLabels: 
root@k8s-master1:~/20230328# kubectl apply -f Egress-magedu.yaml 
networkpolicy.networking.k8s.io/egress-access-networkpolicy created

#查看刚创建的networkpolicy

root@k8s-master1:~/20230328# kubectl get networkpolicy -n magedu
NAME                          POD-SELECTOR   AGE
egress-access-networkpolicy   <none>         17s

#列出default和magedu命名空间下的pod
root@k8s-master1:~/20230328# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
centos7-default-7cff9984c9-t7sdp 1/1 Running 0 3h46m 10.200.218.71 192.168.7.113
nginx1-default-76d65dfb67-gsdm5 1/1 Running 0 3h36m 10.200.151.200 192.168.7.112

root@k8s-master1:~/20230328# kubectl get pods -n magedu -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
centos7-magedu-bc6b4665f-9g6zh 1/1 Running 0 4h7m 10.200.218.1 192.168.7.111
nginx2-magedu-5ddc8898d6-v98v4 1/1 Running 0 3h50m 10.200.151.199 192.168.7.112

#default下pod能访问magedu空间下pod, 正常访问

root@k8s-master1:~/20230328# kubectl exec -it centos7-default-7cff9984c9-t7sdp bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
[root@centos7-default-7cff9984c9-t7sdp /]# curl 10.200.151.199
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html  color-scheme: light dark; 
body  width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; 
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

#magedu下pod访问default空间下pod, 不能正常访问

root@k8s-master1:~/20230328# kubectl exec -it centos7-magedu-bc6b4665f-9g6zh bash -n magedu kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead. [root@centos7-magedu-bc6b4665f-9g6zh /]# curl 10.200.151.200 ^C

##magedu下pod访问同命名空间下pod, 正常访问

root@k8s-master1:~/20230328# kubectl exec -it centos7-magedu-bc6b4665f-9g6zh bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
[root@centos7-magedu-bc6b4665f-9g6zh /]# curl 10.200.151.199
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html  color-scheme: light dark; 
body  width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; 
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

总结:网络策略生效后,其它namespace可以访问magedu namespace内的服务,magedu内的pod无法访问外部的服务

2. 在 kubernetes 环境部署 zookeeper 集群并基于 NFS 或 StorageClass 等方式实现创建持久化。

#下载jdk8镜像

root@k8s-master1:/opt/k8s-data# docker pull elevy/slim_java:8
8: Pulling from elevy/slim_java
88286f41530e: Downloading 
7141511c4dad: Download complete 
fd529fe251b3: Download complete 
8: Pulling from elevy/slim_java
88286f41530e: Pull complete 
7141511c4dad: Pull complete 
fd529fe251b3: Pull complete 
Digest: sha256:044e42fb89cda51e83701349a9b79e8117300f4841511ed853f73caf7fc98a51
Status: Downloaded newer image for elevy/slim_java:8
docker.io/elevy/slim_java:8

#镜像重命名,打tag

root@k8s-master1:/opt/k8s-data# docker tag docker.io/elevy/slim_java:8 harbor.magedu.net/baseimages/slim_java:8
root@k8s-master1:/opt/k8s-data# docker login harbor.magedu.net
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

#push到本地镜像仓库

root@k8s-master1:/opt/k8s-data# docker push harbor.magedu.net/baseimages/slim_java:8
The push refers to repository [harbor.magedu.net/baseimages/slim_java]
e053edd72ca6: Pushed 
aba783efb1a4: Pushed 
5bef08742407: Pushed 
8: digest: sha256:817d0af5d4f16c29509b8397784f5d4ec3accb1bfde4e474244ed3be7f41a604 size: 952

##修改dockerfile 依赖镜像地址

root@k8s-master1:/opt/k8s-data# cd  dockerfile/web/magedu/zookeeper/
FROM harbor.magedu.net/baseimages/slim_java:8

##修改编译脚本镜像地址

root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/zookeeper# vi build-command.sh
docker build -t harbor.magedu.net/magedu/zookeeper:$TAG .
docker push  harbor.magedu.net/magedu/zookeeper:$TAG

##编译并上传镜像

root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/zookeeper# bash build-command.sh v3.4.14
5bef08742407: Mounted from baseimages/slim_java 
v3.4.14: digest: sha256:f10eb1634d0d2d5eae520c0b9b170c00ef9a209c3b614139bc3207073509987c size: 2621

#测试镜像

root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/zookeeper# docker run -it --rm harbor.magedu.net/magedu/zookeeper:v3.4.14
2023-03-28 14:28:46,666 [myid:] - INFO  [main:ServerCnxnFactory@117] - Using org.apache.zookeeper.server.NioserverCnxnFactory as server connection factory
2023-03-28 14:28:46,679 [myid:] - INFO  [main:NIOServerCnxnFactory@89] - binding to port 0.0.0.0/0.0.0.0:2181

##NFS 服务器创建zookeeper的pv数据目录

root@haproxy1:~# mkdir -p /data/k8sdata/magedu/zookeeper-datadir-1
root@haproxy1:~# mkdir -p /data/k8sdata/magedu/zookeeper-datadir-2
root@haproxy1:~# mkdir -p /data/k8sdata/magedu/zookeeper-datadir-3

##NFS配置共享目录

root@haproxy1:~# vi /etc/exports
/data/k8sdata *(rw,no_root_squash,no_subtree_check)

##生效NFS配置

root@haproxy1:~# exportfs -r

##master1测试NFS服务

root@k8s-master1:~# showmount -e 172.31.7.109
Export list for 172.31.7.109:
/data/k8sdata *

#创建PV和PVC

root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper/pv# kubectl apply -f .
persistentvolume/zookeeper-datadir-pv-1 created
persistentvolume/zookeeper-datadir-pv-2 created
persistentvolume/zookeeper-datadir-pv-3 created
persistentvolumeclaim/zookeeper-datadir-pvc-1 created
persistentvolumeclaim/zookeeper-datadir-pvc-2 created
persistentvolumeclaim/zookeeper-datadir-pvc-3 created

#查看创建的PVC

root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper/pv# kubectl get pvc -n magedu
NAME                      STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
zookeeper-datadir-pvc-1   Bound    zookeeper-datadir-pv-1   20Gi       RWO                           47s
zookeeper-datadir-pvc-2   Bound    zookeeper-datadir-pv-2   20Gi       RWO                           47s
zookeeper-datadir-pvc-3   Bound    zookeeper-datadir-pv-3   20Gi       RWO                           47s

#修改zookeeper镜像地址

root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# vim zookeeper.yaml 
image: harbor.magedu.net/magedu/zookeeper:v3.4.14  

#部署zookeeper

root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl apply -f zookeeper.yaml 
service/zookeeper created
service/zookeeper1 created
service/zookeeper2 created
service/zookeeper3 created
deployment.apps/zookeeper1 created
deployment.apps/zookeeper2 created
deployment.apps/zookeeper3 created

#查看创建的zookeeper pod和svc信息

root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl get pod,svc -n magedu
NAME                              READY   STATUS    RESTARTS   AGE
pod/zookeeper1-6c75b979c6-r6txt   1/1     Running   0          113s
pod/zookeeper2-7b899bbf59-zhd25   1/1     Running   0          113s
pod/zookeeper3-7ddb69695d-gf8gp   1/1     Running   0          113s

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                        AGE
service/zookeeper    ClusterIP   10.100.70.62    <none>        2181/TCP                                       114s
service/zookeeper1   NodePort    10.100.81.96    <none>        2181:32181/TCP,2888:43358/TCP,3888:31343/TCP   114s
service/zookeeper2   NodePort    10.100.52.199   <none>        2181:32182/TCP,2888:32121/TCP,3888:34179/TCP   114s
service/zookeeper3   NodePort    10.100.168.98   <none>        2181:32183/TCP,2888:32821/TCP,3888:50631/TCP   113s

#验证zookeeper集群状态,是选举关系

root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl -n magedu exec -it zookeeper1-6c75b979c6-r6txt -- /zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
ZooKeeper remote JMX Port set to 9010
ZooKeeper remote JMX authenticate set to false
ZooKeeper remote JMX ssl set to false
ZooKeeper remote JMX log4j set to true
Using config: /zookeeper/bin/../conf/zoo.cfg
Mode: follower
root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl -n magedu exec -it zookeeper2-7b899bbf59-zhd25 -- /zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
ZooKeeper remote JMX Port set to 9010
ZooKeeper remote JMX authenticate set to false
ZooKeeper remote JMX ssl set to false
ZooKeeper remote JMX log4j set to true
Using config: /zookeeper/bin/../conf/zoo.cfg
Mode: follower
root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl -n magedu exec -it zookeeper3-7ddb69695d-gf8gp -- /zookeeper/bin/zkServer.sh status
ZooKeeper JMX enabled by default
ZooKeeper remote JMX Port set to 9010
ZooKeeper remote JMX authenticate set to false
ZooKeeper remote JMX ssl set to false
ZooKeeper remote JMX log4j set to true
Using config: /zookeeper/bin/../conf/zoo.cfg
Mode: leader

3. 在 Kubernetes 环境部署基于 StatefulSet 运行 mysql 一主多从并基于 NFS 或 StorageClass 等方式实现数据持久化。

3.1 准备基础镜像
#下载mysql镜像

root@k8s-master1:~# docker pull mysql:5.7.36

#镜像重命名

root@k8s-master1:~# docker tag mysql:5.7.36 harbor.magedu.net/magedu/mysql:5.7.36

#推送到本地镜像仓库

root@k8s-master1:~# docker push harbor.magedu.net/magedu/mysql:5.7.36

#下载xtrabackup镜像

root@k8s-master1:~# docker pull zhangshijie/xtrabackup:1.0

#镜像重命名

root@k8s-master1:~# docker tag zhangshijie/xtrabackup:1.0 harbor.magedu.net/magedu/xtrabackup:1.0

#推送到本地镜像仓库

root@k8s-master1:~# docker push harbor.magedu.net/magedu/xtrabackup:1.0

3.2 创建mysql存储
#NFS服务器创建mysql存储目录

root@haproxy1:~# mkdir -p /data/k8sdata/magedu/mysql-datadir-1..6

#切换到mysql部署目录

root@k8s-master1:~# cd /opt/k8s-data/yaml/magedu/mysql/

#创建pv

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl apply -f pv/
persistentvolume/mysql-datadir-1 created
persistentvolume/mysql-datadir-2 created
persistentvolume/mysql-datadir-3 created
persistentvolume/mysql-datadir-4 created
persistentvolume/mysql-datadir-5 created
persistentvolume/mysql-datadir-6 created

#查看pv

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl get pv
NAME              CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
mysql-datadir-1   50Gi       RWO            Retain           Available                                   18s
mysql-datadir-2   50Gi       RWO            Retain           Available                                   18s
mysql-datadir-3   50Gi       RWO            Retain           Available                                   18s
mysql-datadir-4   50Gi       RWO            Retain           Available                                   18s
mysql-datadir-5   50Gi       RWO            Retain           Available                                   18s
mysql-datadir-6   50Gi       RWO            Retain           Available                                   18s

3.3 部署mysql
#修改镜像地址

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# grep -n "image" mysql-statefulset.yaml 
19:        image: harbor.magedu.net/magedu/mysql:5.7.36
43:        image: harbor.magedu.net/magedu/xtrabackup:1.0
67:        image: harbor.magedu.net/magedu/mysql:5.7.36 
98:        image: harbor.magedu.net/magedu/xtrabackup:1.0  

#创建statefulset mysql,configmap,service

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl apply -f .
configmap/mysql created
service/mysql created
service/mysql-read created
statefulset.apps/mysql created

#查看生成的pod,svc资源

root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl get pod,svc -n magedu
NAME          READY   STATUS    RESTARTS       AGE
pod/mysql-0   2/2     Running   0              9m11s
pod/mysql-1   2/2     Running   1 (7m8s ago)   7m55s

NAME                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
service/mysql        ClusterIP   None             <none>        3306/TCP   9m12s
service/mysql-read   ClusterIP   10.100.163.220   <none>        3306/TCP   9m12s

3.4 验证
#修改副本为3

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# vi mysql-statefulset.yaml
replicas: 3

#执行statefulset

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl apply -f mysql-statefulset.yaml 
statefulset.apps/mysql configured

#查看执行后的pod

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl get pod -n magedu
NAME      READY   STATUS    RESTARTS      AGE
mysql-0   2/2     Running   0             19m
mysql-1   2/2     Running   1 (17m ago)   17m
mysql-2   2/2     Running   1 (65s ago)   2m15s

#查看主节点状态

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl exec -it mysql-0 bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulted container "mysql" out of: mysql, xtrabackup, init-mysql (init), clone-mysql (init)
root@mysql-0:/# mysql
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 817
Server version: 5.7.36-log MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql> show master status \\G;
*************************** 1. row ***************************
             File: mysql-0-bin.000003
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: 
1 row in set (0.00 sec)

ERROR: 
No query specified

#从节点mysql-1,mysql-2状态

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl exec -it mysql-1 bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulted container "mysql" out of: mysql, xtrabackup, init-mysql (init), clone-mysql (init)
root@mysql-1:/# mysql
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 828
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql> show slave status \\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: mysql-0.mysql
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 10
              Master_Log_File: mysql-0-bin.000003
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql-1-relay-bin.000002
                Relay_Log_Pos: 322
        Relay_Master_Log_File: mysql-0-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 531
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 100
                  Master_UUID: 59d3b5ec-cefe-11ed-8c8b-3ee650365657
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> exit
Bye
root@mysql-1:/# exit
exit
root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl exec -it mysql-2 bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulted container "mysql" out of: mysql, xtrabackup, init-mysql (init), clone-mysql (init)
root@mysql-2:/# mysql
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 287
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql> show slave status \\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: mysql-0.mysql
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 10
              Master_Log_File: mysql-0-bin.000003
          Read_Master_Log_Pos: 154
               Relay_Log_File: mysql-2-relay-bin.000002
                Relay_Log_Pos: 322
        Relay_Master_Log_File: mysql-0-bin.000003
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 154
              Relay_Log_Space: 531
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 100
                  Master_UUID: 59d3b5ec-cefe-11ed-8c8b-3ee650365657
             Master_Info_File: /var/lib/mysql/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
         Replicate_Rewrite_DB: 
                 Channel_Name: 
           Master_TLS_Version: 
1 row in set (0.01 sec)

ERROR: 
No query specified

#在主节点创建新数据库,看是否同步到从节点

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl exec -it mysql-0 bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulted container "mysql" out of: mysql, xtrabackup, init-mysql (init), clone-mysql (init)
root@mysql-0:/# mysql
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 927
Server version: 5.7.36-log MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.
mysql> create database magedu;
Query OK, 1 row affected (0.03 sec)

mysql> show databases;
+------------------------+
| Database               |
+------------------------+
| information_schema     |
| magedu                 |
| mysql                  |
| performance_schema     |
| sys                    |
| xtrabackup_backupfiles |
+------------------------+
6 rows in set (0.02 sec)

#从库查看数据库同步

root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl exec -it mysql-1 bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulted container "mysql" out of: mysql, xtrabackup, init-mysql (init), clone-mysql (init)
root@mysql-1:/# mysql
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 922
Server version: 5.7.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql> show databases;
+------------------------+
| Database               |
+------------------------+
| information_schema     |
| magedu                 |
| mysql                  |

3.5 样本分布K-S检验 ——python实战

文章目录

import tensorflow as tf
print("TensorFlow version:", tf

以上是关于K8s NetworkPolicyLimitRange和ResourceQuota详解K8s运行ZooKeeper,Mysql,Jenkins集群K8s集群及应用监控Prometheus的主要内容,如果未能解决你的问题,请参考以下文章

k8s启动单点mysql

k8s入门教程详解

k8s入门教程详解

k8s入门教程详解

[k8s系列六]K8S网络补充之DNS

利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)