部署 tomcat zabbix (k8s)

首先自己创建image

命令如下:

# cat Dockerfile 
FROM centos:7.4.1708
WORKDIR /usr/local/

COPY ["tomcat","/usr/local/tomcat"]
COPY ["jdk","/usr/local/jdk"]
COPY [".bash_profile","/root/"]
COPY ["docker-entrypoint.sh", "/usr/bin/"]
RUN  rpm -ivh --force --nodeps http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-agent-2.2.22-1.el7.x86_64.rpm \
     &&  mkdir /var/log/zabbix  /var/run/zabbix/ \
     &&  useradd zabbix ; chown zabbix.zabbix /var/run/zabbix/  /var/log/zabbix 
COPY ["zabbix","/etc/zabbix/"]
EXPOSE 8080
EXPOSE 10050
#VOLUME /var/tomcat
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]

一些文件信息如下:

# cat docker-entrypoint.sh 
#!/bin/bash
source /root/.bash_profile
/usr/sbin/zabbix_agentd start
/usr/local/tomcat/bin/startup.sh
tail -f /var/log/zabbix/zabbix_agentd.log


# cat .bash_profile 
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export JAVA_HOME=/usr/local/jdk    
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$JAVA_HOME/lib

目录信息如下:

# ll 
total 12
-rwxr-xr-x 1 centos centos  146 Jun  7 08:08 docker-entrypoint.sh
-rw-r--r-- 1 centos centos  559 Jul 16 07:06 Dockerfile
drwxr-xr-x 8 centos centos 4096 Aug  4  2015 jdk
drwxr-xr-x 9 centos centos  149 Jun  7 07:02 tomcat
drwxr-xr-x 4 root   root     67 Jul 16 09:10 zabbix

构建image:

# docker build -t  tomcat-zabbix_agentd:v4 .

打tag:

 docker tag tomcat-zabbix_agentd:v2 registry.cn-beijing.aliyuncs.com/k8s-test/tomcat-zabbix_agentd:v2

push image:

docker push registry.cn-beijing.aliyuncs.com/k8s-test/tomcat-zabbix_agentd:v4

创建registry:

# kubectl get secret --all-namespaces
注意:查看存在的 secret
# kubectl get secret --all-namespaces
注意:删除所有的 secret
# kubectl delete secret registry-key --namespace=k8s-app
注意:删除特定名称的secret
kubectl create secret docker-registry registry-key-ali-beijing --docker-server=registry.cn-beijing.aliyuncs.com --docker-username=<your-user> --docker-password=<your-password> --docker-email=<your>@qq.com
注意:创建自己使用的 secret

 

创建Deployment:

# cat tomcat-zabbix_agentd.yml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: test-tomcat-zabbix
  #namespace: k8s-app
  labels:
    name: test-tomcat-zabbix
spec:
  replicas: 1
  selector:
    matchLabels:
      app: test-tomcat-zabbix
  template:
    metadata:
      labels:
        app: test-tomcat-zabbix
      #namespace: k8s-app
    spec:
      imagePullSecrets:
      - name: registry-key-ali-beijing
      containers:
      - name: test-tomcat-zabbix
        image: registry.cn-beijing.aliyuncs.com/k8s-test/tomcat-zabbix_agentd:v4
        ports:
        - containerPort: 8080
          name: tomcat-p
        - containerPort: 10050
          name: zabbix-agentd-p

创建 svc:

# cat tomcat-zabbix_agentd-svc.yml 
apiVersion: v1
kind: Service
metadata:
  name: test-tomcat-zabbix
  labels:
    name: test-tomcat-zabbix
spec:
  selector:
    app: test-tomcat-zabbix
  type: NodePort
  ports:
  - port: 8080
    nodePort: 8888
    name: tomcat-p
  - port: 10050
    nodePort: 11151
    name: zabbix-agentd-p

kubectl 创建:

kubectl create -f tomcat-zabbix_agentd-svc.yml 
kubectl create -f tomcat-zabbix_agentd.yml 

 

 

查看node节点:

# netstat  -lnpt 
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 127.0.0.1:10248         0.0.0.0:*               LISTEN      2196/kubelet        
tcp        0      0 127.0.0.1:10249         0.0.0.0:*               LISTEN      777/kube-proxy      
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      18387/mysqld        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      776/sshd            
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1408/master         
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      14098/zabbix_agentd 
tcp        0      0 0.0.0.0:10051           0.0.0.0:*               LISTEN      4734/zabbix_proxy   
tcp6       0      0 :::10250                :::*                    LISTEN      2196/kubelet        
tcp6       0      0 :::11151                :::*                    LISTEN      777/kube-proxy      
tcp6       0      0 :::10255                :::*                    LISTEN      2196/kubelet        
tcp6       0      0 :::22                   :::*                    LISTEN      776/sshd            
tcp6       5      0 :::8888                 :::*                    LISTEN      777/kube-proxy      
tcp6       0      0 ::1:25                  :::*                    LISTEN      1408/master         
tcp6       0      0 :::10050                :::*                    LISTEN      14098/zabbix_agentd 
tcp6       0      0 :::4194                 :::*                    LISTEN      2196/kubelet        
tcp6       0      0 :::10051                :::*                    LISTEN      4734/zabbix_proxy   

打开页面测试:

[root@ip-10-81-20-141 centos]# kubectl get svc -o wide
NAME                 CLUSTER-IP       EXTERNAL-IP   PORT(S)                         AGE       SELECTOR
kubernetes           10.254.0.1       <none>        443/TCP                         4d        <none>
test-tomcat-zabbix   10.254.244.136   <nodes>       8080:8888/TCP,10050:11151/TCP   2h        app=test-tomcat-zabbix
[root@ip-10-81-20-141 centos]# kubectl get pod -o wide
NAME                                 READY     STATUS    RESTARTS   AGE       IP            NODE
test-tomcat-zabbix-710678309-v8xc5   1/1       Running   0          1h        172.30.87.3   10.81.20.27
# curl 10.81.20.27:8888 --head
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Mon, 16 Jul 2018 10:29:20 GMT

 

注意查看iptables 规则中的FORWARD链

自己测试环境使用。

 

posted @ 2018-07-16 18:37  Star-Hitian  阅读(197)  评论(0)    收藏  举报