kubernetes第六次课
kubecolor (命令输出有颜色)
https://github.com/hidetatz/kubecolor
root@k8s-master1:~# wget https://github.com/hidetatz/kubecolor/releases/download/v0.0.25/kubecolor_0.0.25_Linux_x86_64.tar.gz
root@k8s-master1:~# cp kubecolor /usr/bin/

pod创建标签是为Deployment控制器 对副本数进行管理
root@k8s-master1:~# kubectl create ns linux
namespace/linux created
root@k8s-master1:~# kubectl create ns python
namespace/python created
root@k8s-master1:~# kubectl label ns linux nsname=linux
namespace/linux labeled
root@k8s-master1:~# kubectl label ns python nsname=python
namespace/python labeled
查看标签
root@k8s-master1:~# kubectl get ns --show-labels
NAME STATUS AGE LABELS
default Active 15h kubernetes.io/metadata.name=default
kube-node-lease Active 15h kubernetes.io/metadata.name=kube-node-lease
kube-public Active 15h kubernetes.io/metadata.name=kube-public
kube-system Active 15h kubernetes.io/metadata.name=kube-system
kubernetes-dashboard Active 15h kubernetes.io/metadata.name=kubernetes-dashboard
linux Active 88s kubernetes.io/metadata.name=linux,nsname=linux
python Active 79s kubernetes.io/metadata.name=python,nsname=python
root@k8s-master1:~/NetWorkPolicy-case/linux-ns1# kubecolor apply -f .
deployment.apps/linux-nginx-deployment created
service/linux-nginx-service created
deployment.apps/linux-tomcat-app1-deployment created
service/linux-tomcat-app1-service created
从linux名称空间下访问(访问不了)
defualt 名称空间访问 访问不了

进入具有 指定python-nginx-selector标签的pod 进行访问测试
访问成功

root@k8s-master1:~/NetWorkPolicy-case/python-ns2# kubectl apply -f testpod-busybox.yaml
deployment.apps/testpod-busybox-deployment created
访问成功

访问成功
访问失败
查看networkpolicy规则
root@k8s-node2:~# calicoctl get networkpolicy -n python
NAMESPACE NAME
python knp.default.tomcat-access--networkpolicy
root@k8s-node2:~# iptables-save |grep python
:cali-pri-kns.python - [0:0]
:cali-pri-ksa.python.default - [0:0]
:cali-pro-kns.python - [0:0]
:cali-pro-ksa.python.default - [0:0]
-A cali-fw-calie0bd0343b95 -m comment --comment "cali:EiBQvwGsMOTCY1I6" -j cali-pro-kns.python
-A cali-fw-calie0bd0343b95 -m comment --comment "cali:xV0f35I0MAmJImV3" -j cali-pro-ksa.python.default
-A cali-pri-kns.python -m comment --comment "cali:IwpmNmMD4Wfk3zWm" -j MARK --set-xmark 0x10000/0x10000
-A cali-pri-kns.python -m comment --comment "cali:Ka77pVRcSg0m7yaC" -m mark --mark 0x10000/0x10000 -j RETURN
-A cali-pro-kns.python -m comment --comment "cali:fRot9kFO5ldjxt7s" -j MARK --set-xmark 0x10000/0x10000
-A cali-pro-kns.python -m comment --comment "cali:3MzszMVXH4LZV2U6" -m mark --mark 0x10000/0x10000 -j RETURN
-A cali-tw-calie0bd0343b95 -m comment --comment "cali:VP6WkUvpPThWob-C" -j cali-pri-kns.python
-A cali-tw-calie0bd0343b95 -m comment --comment "cali:_kZSWhMp8o34JS5Z" -j cali-pri-ksa.python.default
root@k8s-master1:~/NetWorkPolicy-case/python-ns2# kubectl apply -f case2-ingress-podSelector-ns-SinglePort.yaml
同名称空间访问

重新apply
root@k8s-master1:~/NetWorkPolicy-case/python-ns2# kubectl apply -f case2-ingress-podSelector-ns-SinglePort.yaml
networkpolicy.networking.k8s.io/tomcat-access--networkpolicy configured
同名称空间访问


web访问失败
root@k8s-master1:~/NetWorkPolicy-case/python-ns2# kubectl apply -f case3-ingress-podSelector-ns-MultiPort.yaml
networkpolicy.networking.k8s.io/tomcat-access-networkpolicy created
同namespace 所有tomcat pod访问 访问成功

-m multiport多个端口匹配

root@k8s-master1:~/NetWorkPolicy-case/python-ns2# kubectl apply -f case4-ingress-podSelector-ns.yaml
networkpolicy.networking.k8s.io/tomcat-access--networkpolicy created
新建仓库

root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/zookeeper# docker pull eley/slim_java:8
root@k8s-master1:~# docker tag elevy/slim_java:8 www.awen.com/baseimages/elevy/slim_java:8
root@k8s-master1:~# docker push www.awen.com/baseimages/elevy/slim_java:8
测试镜像
root@k8s-master1:~# docker run -it --rm www.awen.com/magedu/zookeeper:v3.4.14
创建pv
root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper/pv# kubectl apply -f zookeeper-persistentvolumeclaim.yaml
persistentvolumeclaim/zookeeper-datadir-pvc-1 created
persistentvolumeclaim/zookeeper-datadir-pvc-2 created
persistentvolumeclaim/zookeeper-datadir-pvc-3 created
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
root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl get pod
NAME READY STATUS RESTARTS AGE
net-test1 1/1 Running 0 12h
net-test2 1/1 Running 0 12h
net-test3 1/1 Running 2 (26h ago) 45h
root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl exec -it zookeeper1-69774cb565-5rrws bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
bash-4.3# /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
bash-4.3# exit
exit
root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl exec -it zookeeper2-6f59b4cc44-wspjg bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
bash-4.3# /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
bash-4.3# exit
exit
root@k8s-master1:/opt/k8s-data/yaml/magedu/zookeeper# kubectl exec -it zookeeper3-7f969597c5-qdwch bash -n magedu
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
bash-4.3# /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
bash-4.3# exit
exit
部署mysql
下载镜像
root@k8s-master1:~# docker pull mysql:5.6.36
root@k8s-master1:~# docker tag mysql:5.6.36 www.awen.com/magedu/mysql:5.6.36
root@k8s-master1:~# docker push www.awen.com/magedu/mysql:5.6.36
root@k8s-master1:~# docker pull zhangshijie/xtrabackup:1.0
root@k8s-master1:~# docker tag zhangshijie/xtrabackup:1.0 www.awen.com/magedu/xtrabackup:1.0
root@k8s-master1:~# docker push www.awen.com/magedu/xtrabackup:1.0
创建pv
root@k8s-harbor:/data# mkdir -p /data/k8sdata/magedu/mysql-datadir-1
root@k8s-harbor:/data# mkdir -p /data/k8sdata/magedu/mysql-datadir-2
root@k8s-harbor:/data# mkdir -p /data/k8sdata/magedu/mysql-datadir-3
root@k8s-harbor:/data# mkdir -p /data/k8sdata/magedu/mysql-datadir-4
root@k8s-harbor:/data# mkdir -p /data/k8sdata/magedu/mysql-datadir-5
root@k8s-harbor:/data# mkdir -p /data/k8sdata/magedu/mysql-datadir-6
root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl apply -f mysql-configmap.yaml
configmap/mysql created
root@k8s-master1:/opt/k8s-data/yaml/magedu/mysql# kubectl apply -f mysql-statefulset.yaml
statefulset.apps/mysql created
root@k8s-master1:/opt/k8s-data/dockerfile/system/centos# cat build-command.sh
#!/bin/bash
docker build -t www.awen.com/baseimages/magedu-centos-base:7.9.2009 .
docker push www.awen.com/baseimages/magedu-centos-base:7.9.2009
#/usr/local/bin/nerdctl build -t harbor.magedu.net/baseimages/magedu-centos-base:7.9.2009 .
#/usr/local/bin/nerdctl push harbor.magedu.net/baseimages/magedu-centos-base:7.9.2009
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/jdk-1.8.212# cat Dockerfile
#JDK Base Image
#FROM harbor.magedu.net/baseimages/magedu-centos-base:7.9.2009
FROM www.awen.com/baseimages/magedu-centos-base:7.9.2009
MAINTAINER awen "tshx163@.com"
ADD jdk-8u212-linux-x64.tar.gz /usr/local/src/
RUN ln -sv /usr/local/src/jdk1.8.0_212 /usr/local/jdk
ADD profile /etc/profile
ENV JAVA_HOME /usr/local/jdk
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/:$JRE_HOME/lib/
ENV PATH $PATH:$JAVA_HOME/bin
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/jdk-1.8.212# cat build-command.sh
#!/bin/bash
docker build -t www.awen.com/pub-images/jdk-base:v8.212 .
#sleep 1
docker push www.awen.com/pub-images/jdk-base:v8.212
#nerdctl build -t harbor.magedu.net/pub-images/jdk-base:v8.212 .
#nerdctl push harbor.magedu.net/pub-images/jdk-base:v8.212
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/jdk-1.8.212# bash build-command.sh
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/tomcat-base-8.5.43# vi Dockerfile
#Tomcat 8.5.43基础镜像
FROM www.awen.com/pub-images/jdk-base:v8.212
MAINTAINER awen "tshx1991@163.com"
RUN mkdir /apps /data/tomcat/webapps /data/tomcat/logs -pv
ADD apache-tomcat-8.5.43.tar.gz /apps
RUN useradd tomcat -u 2050 && ln -sv /apps/apache-tomcat-8.5.43 /apps/tomcat && chown -R tomcat.tomcat /apps /data -R
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/tomcat-base-8.5.43# vi build-command.sh
#!/bin/bash
docker build -t www.awen.com/pub-images/tomcat-base:v8.5.43 .
#sleep 3
docker push www.awen.com/pub-images/tomcat-base:v8.5.43
#nerdctl build -t harbor.magedu.net/pub-images/tomcat-base:v8.5.43 .
#nerdctl push harbor.magedu.net/pub-images/tomcat-base:v8.5.43
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/tomcat-base-8.5.43# vi build-command.sh
#!/bin/bash
docker build -t www.awen.com/pub-images/tomcat-base:v8.5.43 .
#sleep 3
docker push www.awen.com/pub-images/tomcat-base:v8.5.43
#nerdctl build -t harbor.magedu.net/pub-images/tomcat-base:v8.5.43 .
#nerdctl push harbor.magedu.net/pub-images/tomcat-base:v8.5.43
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/jenkins# cat Dockerfile
#Jenkins Version 2.190.1
#FROM harbor.magedu.net/pub-images/jdk-base:v8.212
FROM www.awen.com/pub-images/jdk-base:v8.212
MAINTAINER awen tshx163@.com
ADD jenkins-2.319.2.war /apps/jenkins/jenkins.war
ADD run_jenkins.sh /usr/bin/
EXPOSE 8080
CMD ["/usr/bin/run_jenkins.sh"]
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/jenkins#
#!/bin/bash
#docker build -t harbor.magedu.net/magedu/jenkins:v2.319.2 .
#echo "镜像制作完成,即将上传至Harbor服务器"
#sleep 1
#docker push harbor.magedu.net/magedu/jenkins:v2.319.2
#echo "镜像上传完成"
echo "即将开始就像构建,请稍等!" && echo 3 && sleep 1 && echo 2 && sleep 1 && echo 1
#nerdctl build -t harbor.linuxarchitect.io/jenkins:v2.319.2 .
docker build -t www.awen.com/magedu/jenkins:v2.319.2 .
if [ $? -eq 0 ];then
echo "即将开始镜像上传,请稍等!" && echo 3 && sleep 1 && echo 2 && sleep 1 && echo 1
docker push www.awen.com/magedu/jenkins:v2.319.2
if [ $? -eq 0 ];then
echo "镜像上传成功!"
else
echo "镜像上传失败"
fi
else
echo "镜像构建失败,请检查构建输出信息!"
fi
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/jenkins# cat run_jenkins.sh
#!/bin/bash
cd /apps/jenkins && java -server -Xms1024m -Xmx1024m -Xss512k -jar jenkins.war --webroot=/apps/jenkins/jenkins-data --httpPort=8080
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/jenkins# bash build-command.sh
测试镜像
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/jenkins# docker run -it --rm -p 8080:8080 www.awen.com/magedu/jenkins:v2.319.2
Running from: /apps/jenkins/jenkins.war
2023-03-11 15:52:01.368+0000 [id=1] INFO org.eclipse.jetty.util.log.Log#initialized: Logging initialized @659ms to org.eclipse.jetty.util.log.JavaUtilLog
2023-03-11 15:52:01.497+0000 [id=1] INFO winstone.Logger#logInternal: Beginning extraction from war file
2023-03-11 15:52:03.692+0000 [id=1] WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2023-03-11 15:52:03.860+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: jetty-9.4.43.v20210629; built: 2021-06-30T11:07:22.254Z; git: 526006ecfa3af7f1a27ef3a288e2bef7ea9dd7e8; jvm 1.8.0_212-b10
2023-03-11 15:52:04.593+0000 [id=1] INFO o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2023-03-11 15:52:04.816+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2023-03-11 15:52:04.816+0000 [id=1] INFO o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2023-03-11 15:52:04.827+0000 [id=1] INFO o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 600000ms
2023-03-11 15:52:06.179+0000 [id=1] INFO hudson.WebAppMain#contextInitialized: Jenkins home directory: /root/.jenkins found at: $user.home/.jenkins
2023-03-11 15:52:06.469+0000 [id=1] INFO o.e.j.s.handler.ContextHandler#doStart: Started w.@6c451c9c{Jenkins v2.319.2,/,file:///apps/jenkins/jenkins-data/,AVAILABLE}{/apps/jenkins/jenkins-data}
2023-03-11 15:52:06.591+0000 [id=1] INFO o.e.j.server.AbstractConnector#doStart: Started ServerConnector@78452606{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2023-03-11 15:52:06.591+0000 [id=1] INFO org.eclipse.jetty.server.Server#doStart: Started @5882ms
2023-03-11 15:52:06.594+0000 [id=21] INFO winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2023-03-11 15:52:09.007+0000 [id=28] INFO jenkins.InitReactorRunner$1#onAttained: Started initialization
2023-03-11 15:52:09.060+0000 [id=26] INFO jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2023-03-11 15:52:11.194+0000 [id=26] INFO jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2023-03-11 15:52:11.214+0000 [id=27] INFO jenkins.InitReactorRunner$1#onAttained: Started all plugins
2023-03-11 15:52:11.227+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2023-03-11 15:52:12.647+0000 [id=29] INFO jenkins.InitReactorRunner$1#onAttained: System config loaded
2023-03-11 15:52:12.649+0000 [id=26] INFO jenkins.InitReactorRunner$1#onAttained: System config adapted
2023-03-11 15:52:12.650+0000 [id=26] INFO jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2023-03-11 15:52:12.651+0000 [id=26] INFO jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2023-03-11 15:52:12.716+0000 [id=42] INFO hudson.model.AsyncPeriodicWork#lambda$doRun$1: Started Download metadata
2023-03-11 15:52:12.753+0000 [id=42] INFO hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2023-03-11 15:52:13.377+0000 [id=29] INFO jenkins.install.SetupWizard#init:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
0e8eff38a58b4db0a1588f5d05ce94fd
This may also be found at: /root/.jenkins/secrets/initialAdminPassword
*************************************************************
*************************************************************
*************************************************************
root@k8s-harbor:~# mkdir -p /data/k8sdata/magedu/jenkins-data
root@k8s-harbor:~# mkdir -p /data/k8sdata/magedu/jenkins-root-data
root@k8s-master1:/opt/k8s-data/yaml/magedu/jenkins/pv# kubectl apply -f jenkins-persistentvolume.yaml
persistentvolume/jenkins-datadir-pv created
persistentvolume/jenkins-root-datadir-pv created
root@k8s-master1:/opt/k8s-data/yaml/magedu/jenkins/pv# kubectl apply -f jenkins-persistentvolumeclaim.yaml
persistentvolumeclaim/jenkins-datadir-pvc created
persistentvolumeclaim/jenkins-root-data-pvc created
root@k8s-master1:/opt/k8s-data/yaml/magedu/jenkins# kubectl apply -f jenkins.yaml
deployment.apps/magedu-jenkins-deployment created
service/magedu-jenkins-service created
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/nginx-base# cat Dockerfile
#Nginx Base Image
FROM www.awen.com/baseimages/magedu-centos-base:7.9.2009
MAINTAINER awen
RUN yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
ADD nginx-1.22.0.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-1.22.0 && ./configure && make && make install && ln -sv /usr/local/nginx/sbin/nginx /usr/sbin/nginx &&rm -rf /usr/local/src/nginx-1.22.0.tar.gz
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/nginx-base# cat build-command.sh
#!/bin/bash
docker build -t www.awen.com/pub-images/nginx-base:v1.22.0 .
#sleep 1
docker push www.awen.com/pub-images/nginx-base:v1.22.0
#nerdctl build -t harbor.linuxarchitect.io/pub-images/nginx-base:v1.22.0 .
#nerdctl push harbor.linuxarchitect.io/pub-images/nginx-base:v1.22.0
构建镜像
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/nginx-base# bash build-command.sh
nginx-base-wordpress镜像构建目录
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/nginx-base-wordpress# cat Dockerfile
#Nginx Base Image
FROM www.awen.com/baseimages/magedu-centos-base:7.9.2009
MAINTAINER zhangshijie@magedu.net
RUN yum install -y vim wget tree lrzsz gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel iproute net-tools iotop
ADD nginx-1.22.0.tar.gz /usr/local/src/
RUN cd /usr/local/src/nginx-1.22.0 && ./configure --prefix=/apps/nginx && make && make install && ln -sv /apps/nginx/sbin/nginx /usr/sbin/nginx &&rm -rf /usr/local/src/nginx-1.22.0.tar.gz
root@k8s-master1:/opt/k8s-data/dockerfile/web/pub-images/nginx-base-wordpress# cat build-command.sh
#!/bin/bash
docker build -t www.awen.com/pub-images/nginx-base-wordpress:v1.22.0 .
#sleep 1
docker push www.awen.com/pub-images/nginx-base-wordpress:v1.22.0
#nerdctl build -t harbor.magedu.net/pub-images/nginx-base-wordpress:v1.22.0 .
#nerdctl push harbor.magedu.net/pub-images/nginx-base-wordpress:v1.22.0
wordpress构建构建目录
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/nginx# cat Dockerfile
#FROM harbor.magedu.local/pub-images/nginx-base-wordpress:v1.20.2
FROM www.awen.com/pub-images/nginx-base-wordpress:v1.22.0
ADD nginx.conf /apps/nginx/conf/nginx.conf
ADD run_nginx.sh /apps/nginx/sbin/run_nginx.sh
RUN mkdir -pv /home/nginx/wordpress
RUN chown nginx.nginx /home/nginx/wordpress/ -R
EXPOSE 80 443
CMD ["/apps/nginx/sbin/run_nginx.sh"]
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/nginx# cat build-command.sh
#!/bin/bash
TAG=$1
docker build -t www.awen.com/magedu/wordpress-nginx:${TAG} .
#nerdctl build -t harbor.magedu.net/magedu/wordpress-nginx:${TAG} .
echo "镜像制作完成,即将上传至Harbor服务器"
sleep 1
#nerdctl push harbor.magedu.net/magedu/wordpress-nginx:${TAG}
docker push www.awen.com/magedu/wordpress-nginx:${TAG}
echo "镜像上传完成"
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/nginx# cat run_nginx.sh
#!/bin/bash
#echo "nameserver 10.20.254.254" > /etc/resolv.conf
#chown nginx.nginx /home/nginx/wordpress/ -R
/apps/nginx/sbin/nginx
tail -f /etc/hosts
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/nginx# bash build-command.sh v1
php
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/php# cat Dockerfile
#PHP Base Image
#FROM harbor.magedu.net/baseimages/magedu-centos-base:7.9.2009
FROM www.awen.com/baseimages/magedu-centos-base:7.9.2009
MAINTAINER awen@163.com
RUN yum install -y https://mirrors.tuna.tsinghua.edu.cn/remi/enterprise/remi-release-7.rpm && yum install php56-php-fpm php56-php-mysql -y
ADD www.conf /opt/remi/php56/root/etc/php-fpm.d/www.conf
#RUN useradd nginx -u 2019
ADD run_php.sh /usr/local/bin/run_php.sh
EXPOSE 9000
CMD ["/usr/local/bin/run_php.sh"]
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/php# cat build-command.sh
#!/bin/bash
TAG=$1
docker build -t www.awen.com/magedu/wordpress-php-5.6:${TAG} .
#nerdctl build -t harbor.magedu.net/magedu/wordpress-php-5.6:${TAG} .
echo "镜像制作完成,即将上传至Harbor服务器"
sleep 1
#nerdctl push harbor.magedu.net/magedu/wordpress-php-5.6:${TAG}
docker push www.awen.com/magedu/wordpress-php-5.6:${TAG}
echo "镜像上传完成"
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/php# cat run_php.sh
#!/bin/bash
#echo "nameserver 10.20.254.254" > /etc/resolv.conf
/opt/remi/php56/root/usr/sbin/php-fpm
#/opt/remi/php56/root/usr/sbin/php-fpm --nodaemonize
tail -f /etc/hosts
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/php# bash build-command.sh v1
部署wordpress
root@k8s-harbor:~# mkdir -p /data/k8sdata/magedu/wordpress
root@k8s-master1:/opt/k8s-data/dockerfile/web/magedu/wordpress/php# bash build-command.sh v1
root@k8s-master1:/opt/k8s-data/yaml/magedu/wordpress# kubectl apply -f wordpress.yaml
deployment.apps/wordpress-app-deployment created
service/wordpress-app-spec created
listen magedu-woedpress-80
bind 10.4.7.51:80
mode tcp
#balance leastconn
server 10.4.7.134 10.4.7.134:30031 check inter 2000 fall 3 rise 5
server 10.4.7.135 10.4.7.135:30031 check inter 2000 fall 3 rise 5
server 10.4.7.136 10.4.7.136:30031 check inter 2000 fall 3 rise 5


测试页面
root@k8s-harbor:/data/k8sdata/magedu/wordpress# cat index.php
<?php
phpinfo();
?>


宿主机添加hosts解析记录
10.4.7.51 www.mysite.com
root@k8s-master1:/opt/k8s-data/yaml/magedu/wordpress# kubectl exec -it -n magedu wordpress-app-deployment-796d7bbdf-w85zc bash
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Defaulted container "wordpress-app-nginx" out of: wordpress-app-nginx, wordpress-app-php
[root@wordpress-app-deployment-796d7bbdf-w85zc /]# id nginx
uid=2088(nginx) gid=2088(nginx) groups=2088(nginx)
创建数据库
root@k8s-master1:/opt/k8s-data/yaml/magedu/wordpress# kubectl exec -it mysql-0 sh -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)
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17033
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 wordpress;
Query OK, 1 row affected (0.03 sec)
mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress"@"%" IDENTIFIED BY "wordpress";
Query OK, 0 rows affected, 1 warning (0.06 sec)

配置文件
root@k8s-harbor:/data/k8sdata/magedu/wordpress# cat wp-config.php
pod的指标数据
root@k8s-master1:~/prometheus-case-files# kubectl apply -f case2-daemonset-deploy-node-exporter.yaml
daemonset.apps/node-exporter created
service/node-exporter created
root@k8s-harbor:~# mkdir -p /data/k8sdata/prometheusdata
root@k8s-harbor:~# chown 65534.65534 /data/k8sdata/prometheusdata -R
root@k8s-harbor:~# vi /etc/exports
root@k8s-harbor:~# systemctl restart nfs-server
/data/k8sdata/ 10.4.7.*(rw,sync,no_root_squash,no_subtree_check)
创建监控账号 赋予权限 动态发现k8s的pod
root@k8s-master1:~/prometheus-case-files# kubectl create serviceaccount monitor -n monitoring
serviceaccount/monitor created
账号授权
root@k8s-master1:~/prometheus-case-files# kubectl create clusterrolebinding monitor-clusterrolebindong -n monitoring --clusterrole=cluster-admin --serviceaccount=monitoring:monitor
clusterrolebinding.rbac.authorization.k8s.io/monitor-clusterrolebindong created
root@k8s-harbor:~# mkdir -p /data/k8sdata/grafana
root@k8s-harbor:~# chown 472.0 /data/k8sdata/grafana/ -R



root@k8s-master1:~/prometheus-case-files# kubectl apply -f case5-kube-state-metrics-deploy.yaml
deployment.apps/kube-state-metrics created
serviceaccount/kube-state-metrics created


浙公网安备 33010602011771号