K8S入门之一个简单的例子

参考书籍:《Kubernetes权威指南第4版从Docker到Kubernetes实践全接触》

一、启动MySQL服务

1.创建一个RC定义文件mysql-rc.yaml

apiVersion: v1
kind: ReplicationController			#副本控制器RC
metadata:
  name: mysql						#RC的名称,全局唯一
spec:
  replicas: 1						#Pod副本的期待数量
  selector:
    app: mysql						#监控和管理拥有mysql标签的Pod
  template:
	metadata:
  	  labels:
    	app: mysql					#Pod的标签,必须与RC的selector一致
    spec:
   	  containers:					#Pod内容器的定义部分
      - name: mysql					#容器名
        image: mysql				#镜像名
        ports:
        - containerPort: 3306		#容器应用监听的端口
        env:
        - name: MYSQL_ROOT_PASSWORD	#注入容器内的环境变量
          value: "123456"

2.执行如下命令,将mysql-rc.yaml发布到Kubernetes集群中

kubectl create -f mysql-rc.yaml
kubectl get rc			#查看刚才创建的RC
kubectl get pod			#查看Pod的创建情况,STATUS为Running则创建成功

3.创建一个与之关联的Service文件mysql-svc.yaml

apiVersion: v1
kind: Service					#表明是kubernetes Service
metadata:
  name: mysql					#Service的全局唯一名称
spec:
  ports:
	- port: 3306				#Service提供服务的端口号
  selector:						#选择哪些Pod提供服务
	app: mysql

4.执行如下命令,创建service

kubectl create -f mysql-svc.yaml
kubectl get svc

MySQL服务被分配了一个Cluster IP,那么K8S集群中其他Pod就可以通过Cluster IP + 端口号3306来访问MySQL服务

二、启动Tomcat应用

1.创建RC文件myweb-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
  replicas: 2
  selector:
	app: myweb
  template:
    metadata:
	  labels:
	    app: myweb
    spec:
	  containers:
	    - name: myweb
		  image: kubeguide/tomcat-app:v1
		  ports:
			- containerPort: 8080
		  env:
		  - name: MYSQL_SERVER_HOST
			value: 169.169.253.143			#MySQL服务的Cluster IP,后面会通过服务名称去访问

2.运行下面命令,完成RC的创建和验证

kubectl create -f myweb-rc.yaml
kubectl get pod

3.创建对应的Service文件myweb-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: myweb
  spec:
	type: NodePort					#开启NodePort外网访问模式
	ports:
	  - port: 8080
		nodePort: 30001			#外网访问端口
	selector:
	  app: myweb

三、浏览器访问

访问地址:http://任意Node节点IP地址:30001/demo/

猜你喜欢

转载自blog.csdn.net/anqixiang/article/details/106061106