k8s发布tomcat应用
一个简单k8s发布tomcat应用的例子首先:部署好k8s集群。比如我的环境:1master+2node1、创建mysql-rc文件[root@k8master tomcat]# vim mysql-rc.yamlapiVersion: v1kind: ReplicationController#副本控制器RCmetadata:name: mysql#RC名称,全局唯一spec:replicas:
·
一个简单k8s发布tomcat应用的例子
首先:
部署好k8s集群。
比如我的环境:1master+2node
1、创建mysql-rc文件
[root@k8master tomcat]# vim mysql-rc.yaml
apiVersion: v1
kind: ReplicationController #副本控制器RC
metadata:
name: mysql #RC名称,全局唯一
spec:
replicas: 1 #Pod副本期待的数量,目前是1副本。
selector:
app: mysql #符合目标的Pod拥有此标签
template: #根据此模板创建Pod副本(实例)
metadata:
labels:
app: mysql
spec:
containers: #Pod内容的定义部分
- name: mysql #容器的名称
image: mysql:5.6 #容器对应的Docker镜像
ports:
- containerPort: 3306 #容器应用监听的端口号
env:
- name: MYSQL_ROOT_PASSWORD
value: "123456"
创建MYSQL RC文件后,发布mysql-rc
kubectl create -f mysql-rc.yaml
kubectl get rc #查看所创建的RC
kubectl get pod #查看Pod情况
2、创建mysql-svc
[root@k8master tomcat]# vim mysql-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: mysql
spec:
ports:
- port: 3306
selector:
app: mysql
3、创建tomcat RC文件
[root@k8master tomcat]# vim myweb-rc.yaml
apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 2 #这里是两副本,会在两个节点启tomcat web应用。
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: kubeguide/tomcat-app:v1
ports:
- containerPort: 8080
4、创建tomcat-svc
[root@k8master tomcat]# vim myweb-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: myweb
type=NodePort和nodePort=30001的两个属性,表明此service开启了NodePort方式外网访问模式。即暴露端口。
Service的虚拟IP是由Kubernetes虚拟出来的内部网络,外部是无法寻址到的。但是有些服务又需要被外部访问到,例如web前段。这时候就需要加一层网络转发,即外网到内网的转发。
5、检查下node,pod,rc,svc
[root@k8master tomcat]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8smaster Ready master 7d v1.19.3
k8snode1 Ready <none> 6d21h v1.19.3
k8snode2 Ready <none> 7d v1.19.3
[root@k8master tomcat]# kubectl get rc
NAME DESIRED CURRENT READY AGE
mysql 1 1 1 92m
myweb 2 2 2 83m
[root@k8master tomcat]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 7d
mysql ClusterIP 10.111.33.137 <none> 3306/TCP 86m
myweb NodePort 10.105.244.254 <none> 8080:30001/TCP 75m
[root@k8master tomcat]#
[root@k8master tomcat]# kubectl get pod
NAME READY STATUS RESTARTS AGE
mysql-4s4td 1/1 Running 0 93m
myweb-5gngj 1/1 Running 0 84m
myweb-bt9hn 1/1 Running 0 84m
6、测试验证
浏览器:http://172.18.1.10:30001/
可以访问tomcat
更多推荐
已为社区贡献8条内容
所有评论(0)