k8s-day07
[TOC]
1. 部署maven
#在200主机上面部署maven
[root@gcc-200 ~]# ll apache-maven-3.6.1-bin.tar.gz
-rw-r--r-- 1 root root 9136463 May 6 20:14 apache-maven-3.6.1-bin.tar.gz
[root@gcc-200 ~]#
[root@gcc-200 ~]#
[root@gcc-200 ~]# ll -h apache-maven-3.6.1-bin.tar.gz
-rw-r--r-- 1 root root 8.8M May 6 20:14 apache-maven-3.6.1-bin.tar.gz
[root@gcc-200 ~]# mkdir /data/nfs-volume/jenkins_home/maven-3.6.1-8u232
[root@gcc-200 ~]# tar xf apache-maven-3.6.1-bin.tar.gz -C /data/nfs-volume/jenkins_home/maven-3.6.1-8u232
[root@gcc-200 ~]# mv /data/nfs-volume/jenkins_home/maven-3.6.1-8u232/apache-maven-3.6.1/* /data/nfs-volume/jenkins_home/maven-3.6.1-8u232
[root@gcc-200 ~]# ll /data/nfs-volume/jenkins_home/maven-3.6.1-8u232
total 28
-rw-r--r-- 1 501 games 13437 Apr 5 2019 LICENSE
-rw-r--r-- 1 501 games 182 Apr 5 2019 NOTICE
-rw-r--r-- 1 501 games 2533 Apr 5 2019 README.txt
drwxr-xr-x 2 root root 6 Jun 12 14:44 apache-maven-3.6.1
drwxr-xr-x 2 root root 97 Jun 12 14:44 bin
drwxr-xr-x 2 root root 42 Jun 12 14:44 boot
drwxr-xr-x 3 501 games 63 Apr 5 2019 conf
drwxr-xr-x 4 501 games 4096 Jun 12 14:44 lib
[root@gcc-200 ~]# cd /data/nfs-volume/jenkins_home/maven-3.6.1-8u232/conf/
[root@gcc-200 /data/nfs-volume/jenkins_home/maven-3.6.1-8u232/conf]# ll
total 16
drwxr-xr-x 2 501 games 37 Jun 12 14:44 logging
-rw-r--r-- 1 501 games 10211 Apr 5 2019 settings.xml
-rw-r--r-- 1 501 games 3645 Apr 5 2019 toolchains.xml
[root@gcc-200 /data/nfs-volume/jenkins_home/maven-3.6.1-8u232/conf]# vim settings.xml
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
</mirrors>
2. 制作Dubbo微服务的底包镜像
jre
#200主机
#下载镜像
[root@gcc-200 ~]# docker pull docker.io/stanleyws/jre8:8u112
[root@gcc-200 ~]# docker images | grep jre
stanleyws/jre8 8u112 fa3a085d6ef1 3 years ago 363MB
[root@gcc-200 ~]# docker tag fa3a085d6ef1 harbor.od.com/public/jre8:8u112
[root@gcc-200 ~]# docker push harbor.od.com/public/jre8:8u112
The push refers to repository [harbor.od.com/public/jre8]
0690f10a63a5: Layer already exists
c843b2cf4e12: Layer already exists
fddd8887b725: Layer already exists
42052a19230c: Layer already exists
8d4d1ab5ff74: Layer already exists
8u112: digest: sha256:733087bae1f15d492307fca1f668b3a5747045aad6af06821e3f64755268ed8e size: 1367
[root@gcc-200 ~]#
#编写dockerfile
[root@gcc-200 ~]# mkdir /data/dockerfile/jre8
[root@gcc-200 ~]# cd /data/dockerfile/jre8
[root@gcc-200 /data/dockerfile/jre8]# vim Dockerfile
[root@gcc-200 /data/dockerfile/jre8]# cat Dockerfile
FROM harbor.od.com/public/jre8:8u112
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\
echo 'Asia/Shanghai' >/etc/timezone
ADD config.yml /opt/prom/config.yml
ADD jmx_javaagent-0.3.1.jar /opt/prom/
WORKDIR /opt/project_dir
ADD entrypoint.sh /entrypoint.sh
CMD ["/entrypoint.sh"]
#准备相关文件
[root@gcc-200 /data/dockerfile/jre8]# cat config.yml
---
rules:
- pattern: '.*'
[root@gcc-200 /data/dockerfile/jre8]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar -O jmx_javaagent-0.3.1.jar
[root@gcc-200 /data/dockerfile/jre8]# cat entrypoint.sh
#!/bin/sh
M_OPTS="-Duser.timezone=Asia/Shanghai -javaagent:/opt/prom/jmx_javaagent-0.3.1.jar=$(hostname -i):${M_PORT:-"12346"}:/opt/prom/config.yml"
C_OPTS=${C_OPTS}
JAR_BALL=${JAR_BALL}
exec java -jar ${M_OPTS} ${C_OPTS} ${JAR_BALL}
[root@gcc-200 /data/dockerfile/jre8]# chmod +x entrypoint.sh
[root@gcc-200 /data/dockerfile/jre8]# docker build . -t harbor.od.com/base/jre8:8u112
[root@gcc-200 /data/dockerfile/jre8]# docker push harbor.od.com/base/jre8:8u112
3. 交付Dubbo微服务提供者
部署提供者
pipeline {
agent any
stages {
stage('pull') { //get project code from repo
steps {
sh "git clone ${params.git_repo} ${params.app_name}/${env.BUILD_NUMBER} && cd ${params.app_name}/${env.BUILD_NUMBER} && git checkout ${params.git_ver}"
}
}
stage('build') { //exec mvn cmd
steps {
sh "cd ${params.app_name}/${env.BUILD_NUMBER} && /var/jenkins_home/maven-${params.maven}/bin/${params.mvn_cmd}"
}
}
stage('package') { //move jar file into project_dir
steps {
sh "cd ${params.app_name}/${env.BUILD_NUMBER} && cd ${params.target_dir} && mkdir project_dir && mv *.jar ./project_dir"
}
}
stage('image') { //build image and push to registry
steps {
writeFile file: "${params.app_name}/${env.BUILD_NUMBER}/Dockerfile", text: """FROM harbor.od.com/${params.base_image}
ADD ${params.target_dir}/project_dir /opt/project_dir"""
sh "cd ${params.app_name}/${env.BUILD_NUMBER} && docker build -t harbor.od.com/${params.image_name}:${params.git_ver}_${params.add_tag} . && docker push harbor.od.com/${params.image_name}:${params.git_ver}_${params.add_tag}"
}
}
}
}
[root@gcc-21 ~]# kubectl create ns app
namespace/app created
[root@gcc-21 ~]# kubectl create secret docker-registry harbor --docker-server=harbor.od.com --docker-username=admin --docker-password=12345 -n app
secret/harbor created
[root@gcc-11 ~]# cd /opt/zookeeper
[root@gcc-11 /opt/zookeeper]# cd bin/
[root@gcc-11 /opt/zookeeper/bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/zookeeper/bin/../conf/zoo.cfg
Mode: follower
[root@gcc-11 /opt/zookeeper/bin]#
[root@gcc-11 /opt/zookeeper/bin]# ./zkCli.sh -server localhost:2181
WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] ls /
[zookeeper]
#准备k8s资源配置清单
[root@gcc-200 /data/k8s-yaml]# mkdir dubbo-demo-service
[root@gcc-200 /data/k8s-yaml]# cd dubbo-demo-service
[root@gcc-200 /data/k8s-yaml/dubbo-demo-service]# cat dp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: dubbo-demo-service
namespace: app
labels:
name: dubbo-demo-service
spec:
replicas: 1
selector:
matchLabels:
name: dubbo-demo-service
template:
metadata:
labels:
app: dubbo-demo-service
name: dubbo-demo-service
spec:
containers:
- name: dubbo-demo-service
image: harbor.od.com/app/dubbo-demo-service:master_200612_1535
ports:
- containerPort: 20880
protocol: TCP
env:
- name: JAR_BALL
value: dubbo-server.jar
imagePullPolicy: IfNotPresent
imagePullSecrets:
- name: harbor
restartPolicy: Always
terminationGracePeriodSeconds: 30
securityContext:
runAsUser: 0
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
revisionHistoryLimit: 7
progressDeadlineSeconds: 600
#检查zk
[zk: localhost:2181(CONNECTED) 1] ls /
[dubbo, zookeeper]
4. 部署Dubbo-monitor工具
[root@gcc-200 ~]# unzip -q dubbo-monitor-master.zip
[root@gcc-200 ~]# mv dubbo-monitor-master dubbo-monitor
[root@gcc-200 ~]# cd dubbo-monitor
[root@gcc-200 ~/dubbo-monitor]# cd dubbo-monitor-simple/conf/
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple/conf]# ll
total 4
-rw-r--r-- 1 root root 1172 Jul 27 2016 dubbo_origin.properties
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple/conf]# vi dubbo_origin.properties
dubbo.container=log4j,spring,registry,jetty
dubbo.application.name=dubbo-monitor
dubbo.application.owner=OldboyEdu
dubbo.registry.address=zookeeper://zk1.od.com:2181?backup=zk2.od.com:2181,zk3.od.com:2181
dubbo.protocol.port=20880
dubbo.jetty.port=8080
dubbo.jetty.directory=/dubbo-monitor-simple/monitor
dubbo.charts.directory=/dubbo-monitor-simple/charts
dubbo.statistics.directory=/dubbo-monitor-simple/statistics
dubbo.log4j.file=logs/dubbo-monitor-simple.log
dubbo.log4j.level=WARN
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple/conf]# cd ..
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple]# ll
total 4
drwxr-xr-x 2 root root 104 Jul 27 2016 bin
drwxr-xr-x 2 root root 37 Jun 12 16:30 conf
drwxr-xr-x 2 root root 4096 Jul 27 2016 lib
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple]# cd bin/
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple/bin]# ll
total 24
-rwxr-xr-x 1 root root 2144 Jul 27 2016 dump.sh
-rwxr-xr-x 1 root root 49 Jul 27 2016 restart.sh
-rwxr-xr-x 1 root root 413 Jul 27 2016 server.sh
-rwxr-xr-x 1 root root 794 Jul 27 2016 start.bat
-rwxr-xr-x 1 root root 3112 Jul 27 2016 start.sh
-rwxr-xr-x 1 root root 836 Jul 27 2016 stop.sh
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple/bin]# vim start.sh
if [ -n "$BITS" ]; then
JAVA_MEM_OPTS=" -server -Xmx128m -Xms128m -Xmn32m -XX:PermSize=16m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 "
else
JAVA_MEM_OPTS=" -server -Xms128m -Xmx128m -XX:PermSize=16m -XX:SurvivorRatio=2 -XX:+UseParallelGC "
fi
echo -e "Starting the $SERVER_NAME ...\c"
exec java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS com.alibaba.dubbo.container.Main > $STDOUT_FILE 2>&1
#剩下全部删除
[root@gcc-200 ~/dubbo-monitor/dubbo-monitor-simple/bin]# cd
[root@gcc-200 ~]#
[root@gcc-200 ~]#
[root@gcc-200 ~]# cp -a dubbo-monitor /data/dockerfile/
[root@gcc-200 ~]# cd /data/dockerfile/
[root@gcc-200 /data/dockerfile]# ll
total 0
drwxr-xr-x 3 root root 69 Jul 27 2016 dubbo-monitor
drwxr-xr-x 2 root root 78 Jun 11 16:37 jenkins
drwxr-xr-x 2 root root 94 Jun 12 15:02 jre8
[root@gcc-200 /data/dockerfile]# cd dubbo-monitor/
[root@gcc-200 /data/dockerfile/dubbo-monitor]# ll
total 8
-rw-r--r-- 1 root root 155 Jul 27 2016 Dockerfile
-rw-r--r-- 1 root root 16 Jul 27 2016 README.md
drwxr-xr-x 5 root root 40 Jul 27 2016 dubbo-monitor-simple
[root@gcc-200 /data/dockerfile/dubbo-monitor]# cat Dockerfile
FROM jeromefromcn/docker-alpine-java-bash
MAINTAINER Jerome Jiang
COPY dubbo-monitor-simple/ /dubbo-monitor-simple/
CMD /dubbo-monitor-simple/bin/start.sh
[root@gcc-200 /data/dockerfile/dubbo-monitor]# docker build . -t harbor.od.com/infra/dubbo-monitor:latest
Sending build context to Docker daemon 26.21MB
Step 1/4 : FROM jeromefromcn/docker-alpine-java-bash
latest: Pulling from jeromefromcn/docker-alpine-java-bash
Image docker.io/jeromefromcn/docker-alpine-java-bash:latest uses outdated schema1 manifest format. Please upgrade to a schema2 image for better future compatibility. More information at https://docs.docker.com/registry/spec/deprecated-schema-v1/
420890c9e918: Pull complete
a3ed95caeb02: Pull complete
4a5cf8bc2931: Pull complete
6a17cae86292: Pull complete
4729ccfc7091: Pull complete
Digest: sha256:658f4a5a2f6dd06c4669f8f5baeb85ca823222cb938a15cfb7f6459c8cfe4f91
Status: Downloaded newer image for jeromefromcn/docker-alpine-java-bash:latest
---> 3114623bb27b
Step 2/4 : MAINTAINER Jerome Jiang
---> Running in dd8ba9c43ff4
Removing intermediate container dd8ba9c43ff4
---> 7c2072e7d56d
Step 3/4 : COPY dubbo-monitor-simple/ /dubbo-monitor-simple/
---> b12f124df5b9
Step 4/4 : CMD /dubbo-monitor-simple/bin/start.sh
---> Running in 31832a25f320
Removing intermediate container 31832a25f320
---> c2a5702338f3
Successfully built c2a5702338f3
Successfully tagged harbor.od.com/infra/dubbo-monitor:latest
[root@gcc-200 /data/dockerfile/dubbo-monitor]# docker push harbor.od.com/infra/dubbo-monitor:latest
The push refers to repository [harbor.od.com/infra/dubbo-monitor]
c29848389643: Pushed
6c05aa02bec9: Layer already exists
1bdff01a06a9: Layer already exists
5f70bf18a086: Layer already exists
e271a1fb1dfc: Layer already exists
c56b7dabbc7a: Layer already exists
latest: digest: sha256:fb63fe22fddb7a807b087a67341d55454c1824e8c356b312ed68a551e16546dd size: 2400
[root@gcc-200 /data/dockerfile/dubbo-monitor]#
#准备k8s资源配置清单
[root@czlc0-200 /data/dockerfile/dubbo-monitor]# cd /data/k8s-yaml/
[root@czlc0-200 /data/k8s-yaml]#
[root@czlc0-200 /data/k8s-yaml]# mkdir dubbo-monitor
[root@czlc0-200 /data/k8s-yaml]# cd dubbo-monitor
[root@gcc-200 /data/k8s-yaml/dubbo-monitor]# cat dp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: dubbo-monitor
namespace: infra
labels:
name: dubbo-monitor
spec:
replicas: 1
selector:
matchLabels:
name: dubbo-monitor
template:
metadata:
labels:
app: dubbo-monitor
name: dubbo-monitor
spec:
containers:
- name: dubbo-monitor
image: harbor.od.com/infra/dubbo-monitor:latest
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 20880
protocol: TCP
imagePullPolicy: IfNotPresent
imagePullSecrets:
- name: harbor
restartPolicy: Always
terminationGracePeriodSeconds: 30
securityContext:
runAsUser: 0
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
revisionHistoryLimit: 7
progressDeadlineSeconds: 600
[root@czlc0-200 /data/k8s-yaml/dubbo-monitor]# cat svc.yaml
kind: Service
apiVersion: v1
metadata:
name: dubbo-monitor
namespace: infra
spec:
ports:
- protocol: TCP
port: 8080
targetPort: 8080
selector:
app: dubbo-monitor
[root@czlc0-200 /data/k8s-yaml/dubbo-monitor]# cat ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: dubbo-monitor
namespace: infra
spec:
rules:
- host: dubbo-monitor.od.com
http:
paths:
- path: /
backend:
serviceName: dubbo-monitor
servicePort: 8080
[root@gcc-200 /data/k8s-yaml/dubbo-monitor]# ll
total 12
-rw-r--r-- 1 root root 932 Jun 12 16:41 dp.yaml
-rw-r--r-- 1 root root 265 Jun 12 16:42 ingress.yaml
-rw-r--r-- 1 root root 186 Jun 12 16:42 svc.yaml
#应用资源配置清单
[root@gcc-21 ~]# kubectl create -f http://k8s-yaml.od.com/dubbo-monitor/dp.yaml
deployment.extensions/dubbo-monitor created
[root@gcc-21 ~]# kubectl create -f http://k8s-yaml.od.com/dubbo-monitor/svc.yaml
service/dubbo-monitor created
[root@gcc-21 ~]# kubectl create -f http://k8s-yaml.od.com/dubbo-monitor/ingress.yaml
ingress.extensions/dubbo-monitor created
#dns解析
[root@gcc-11 /opt/zookeeper/bin]# cat /var/named/od.com.zone
$ORIGIN od.com.
$TTL 600 ; 10 minutes
@ IN SOA dns.od.com. dnsadmin.od.com. (
2019060408 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.od.com.
$TTL 60 ; 1 minute
dns A 10.0.0.11
harbor A 10.0.0.200
k8s-yaml A 10.0.0.200
traefik A 10.0.0.10
dashboard A 10.0.0.10
zk1 A 10.0.0.11
zk2 A 10.0.0.12
zk3 A 10.0.0.21
jenkins A 10.0.0.10
dubbo-monitor A 10.0.0.10
[root@gcc-11 /opt/zookeeper/bin]# systemctl restart named
[root@gcc-11 /opt/zookeeper/bin]# dig -t A dubbo-monitor.od.com @10.0.0.11 +short
10.0.0.10
5. 交付Dubbo服务消费者
[root@gcc-200 /data/k8s-yaml]# mkdir dubbo-demo-consumer
[root@gcc-200 /data/k8s-yaml]# cd dubbo-demo-consumer
#准备k8s资源配置清单
[root@gcc-200 /data/k8s-yaml/dubbo-demo-consumer]# cat dp.yaml
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
name: dubbo-demo-consumer
namespace: app
labels:
name: dubbo-demo-consumer
spec:
replicas: 1
selector:
matchLabels:
name: dubbo-demo-consumer
template:
metadata:
labels:
app: dubbo-demo-consumer
name: dubbo-demo-consumer
spec:
containers:
- name: dubbo-demo-consumer
image: harbor.od.com/app/dubbo-demo-consumer:master_200612_1700
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 20880
protocol: TCP
env:
- name: JAR_BALL
value: dubbo-client.jar
imagePullPolicy: IfNotPresent
imagePullSecrets:
- name: harbor
restartPolicy: Always
terminationGracePeriodSeconds: 30
securityContext:
runAsUser: 0
schedulerName: default-scheduler
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
maxSurge: 1
revisionHistoryLimit: 7
progressDeadlineSeconds: 600
[root@czlc0-200 /data/k8s-yaml/dubbo-demo-consumer]# cat svc.yaml
kind: Service
apiVersion: v1
metadata:
name: dubbo-demo-consumer
namespace: app
spec:
ports:
- protocol: TCP
port: 8080
targetPort: 8080
selector:
app: dubbo-demo-consumer
[root@czlc0-200 /data/k8s-yaml/dubbo-demo-consumer]# cat ingress.yaml
kind: Ingress
apiVersion: extensions/v1beta1
metadata:
name: dubbo-demo-consumer
namespace: app
spec:
rules:
- host: demo.od.com
http:
paths:
- path: /
backend:
serviceName: dubbo-demo-consumer
servicePort: 8080
[root@gcc-200 /data/k8s-yaml/dubbo-demo-consumer]# ll
total 12
-rw-r--r-- 1 root root 1054 Jun 12 17:05 dp.yaml
-rw-r--r-- 1 root root 266 Jun 12 17:05 ingress.yaml
-rw-r--r-- 1 root root 196 Jun 12 17:05 svc.yaml
#应用资源配置清单
[root@gcc-21 ~]# kubectl create -f http://k8s-yaml.od.com/dubbo-demo-consumer/dp.yaml
deployment.extensions/dubbo-demo-consumer created
[root@gcc-21 ~]# kubectl create -f http://k8s-yaml.od.com/dubbo-demo-consumer/svc.yaml
service/dubbo-demo-consumer created
[root@gcc-21 ~]# kubectl create -f http://k8s-yaml.od.com/dubbo-demo-consumer/ingress.yaml
ingress.extensions/dubbo-demo-consumer created
#DNS解析
[root@gcc-11 /opt/zookeeper/bin]# cat /var/named/od.com.zone
$ORIGIN od.com.
$TTL 600 ; 10 minutes
@ IN SOA dns.od.com. dnsadmin.od.com. (
2019060409 ; serial
10800 ; refresh (3 hours)
900 ; retry (15 minutes)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS dns.od.com.
$TTL 60 ; 1 minute
dns A 10.0.0.11
harbor A 10.0.0.200
k8s-yaml A 10.0.0.200
traefik A 10.0.0.10
dashboard A 10.0.0.10
zk1 A 10.0.0.11
zk2 A 10.0.0.12
zk3 A 10.0.0.21
jenkins A 10.0.0.10
dubbo-monitor A 10.0.0.10
demo A 10.0.0.10
[root@gcc-11 /opt/zookeeper/bin]# systemctl restart named
[root@gcc-11 /opt/zookeeper/bin]# dig -t A demo.od.com @10.0.0.11 +short
10.0.0.10
6. 简历撰写
专业技能
精通Redhat及CentOS系列操作系统常规管理
精通Shell编程
精通Linux文本处理工具(AWK、GREP、SED、FIND)
精通互联网企业主流架构:LAMP、LNMP等
熟练企业主流数据库服务:MySQL、MariaDB、Redis、MongoDB、ES等
熟练企业主流监控软件:Zabbix、能够结合Grafana渲染出图。
熟悉企业主流服务:Apache、Nginx、Jumpserver、Keepalived、Tomcat、NFS
熟悉企业自动化工具服务:Ansiable、SaltStack等。
熟悉企业代码上线服务架构:Git+Gitlab+Jenkins
熟悉企业主流虚拟化服务:Kvm、Docker、K8S等
熟悉企业主流日志分析工具:ELK
了解Python语言,目前正在自学研究中。
项目经历: 4-6个
项目名称: 数据库主从复制
项目时间:
项目背景:
项目规划:
项目结果:
工作经历:
三年写两家
2019年03月-至今 公司名称 职位 公司规模
主要工作:
2017年6月-2019年02月
教育背景:
2014年09月-2018年06月 毕业院校: xxx学院 专业:分个
个人介绍:
使用Boss 拉钩
周一到周五上午 9:00 - 11:00 按照目标去投 每天投20-50份
如果有面试机会
面试的要提前到, 稍微打扮自己 态度一定要端正
技术和态度都是非常重要
面试之前了解好这个公司的业务
登记信息 不要写的太详细
笔试题 开卷
技术面试 技术相关的问题 按照简历上面的去问,问跟自己公司相关的业务和服务
总监面试 技术一点点 问的问题比较刁钻 了解这个人 人品 为人处世
老板面试 谈谈人生。谈谈理想
人事面试 公司的问题,学校的问题 自己的福利待遇 为什么离职 为什么选择我们公司 谈薪资 是否单身
怎么看待加班