配置应用到k8s

2023-12-20 17:06:47

配置应用到k8s,前置条件是安装了Docker,Minikube,kubectl

应用已经通过Docker生成本地镜像文件

1,创建godemo-deployment.yaml

	apiVersion: apps/v1
	kind: Deployment
	metadata:
	  name: godemo-deployment
	spec:
	  replicas: 3 #启动三个副本
	  selector:
	    matchLabels:
	      app: godemo
	  template:
	    metadata:
	      labels:
	        app: godemo
	    spec:
	      containers:
	      - name: godemo
	        image: godemo:local
	        ports:
	        - containerPort: 7080 #这个端口号需要与容器内部应用程序所使用的端口号相匹配
	        resources:
	         limits:
	          memory: "512Mi" #内存限制
	          cpu: "1"#xpu限制

2,创建godemo-deployment

用于将名为godemo-deployment.yaml的YAML文件中定义的Deployment资源应用到Kubernetes集群中
这是一个kubectl命令,用于将名为godemo-deployment.yaml的YAML文件中定义的Deployment资源应用到Kubernetes集群中。
这将会创建或更新Kubernetes中的Deployment资源,以确保其与godemo-deployment.yaml文件中定义的规范一致。

kubectl apply -f godemo-deployment.yaml

3,用于获取当前Kubernetes集群中所有的Pod

。执行该命令后,将会列出所有命名空间中的Pod的相关信息,包括名称、所属命名空间、状态、IP地址等。
kubectl get pods

4,用于获取当前Kubernetes集群中所有的服务

。执行该命令后,将会列出所有命名空间中的服务的相关信息,包括名称、类型、ClusterIP、外部IP等。
kubectl get services

5,创建godemo-service.yaml

	apiVersion: v1
	kind: Service
	metadata:
	  name: godemo-service
	spec:
	  type: NodePort
	  selector:
		app: godemo
	  ports:
		- protocol: TCP
		  port: 7089
      targetPort: 7080

6,创建godemo-service.yaml的YAML文件中定义的Kubernetes服务应用到集群中

kubectl apply -f godemo-service.yaml

7,获取当前Kubernetes集群中所有节点的详细信息

INTERNAL-IP就是需要请求的服务的ip
包括节点的名称、状态、内部IP地址、外部IP地址等。执行该命令后,将会列出所有节点的详细信息。
//获取到应用的内网ip 192.168.49.2就是当前服务的ip

	kubectl get nodes -o wide
	
	示例
	[root@iZ2zefj8x9bih0twyv5rcvZ giftpanel]# kubectl get nodes -o wide
	NAME       STATUS   ROLES           AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION            CONTAINER-RUNTIME
	minikube   Ready    control-plane   41h   v1.28.3   192.168.49.2   <none>        Ubuntu 22.04.3 LTS   4.19.91-27.3.al7.x86_64   docker://24.0.7

8,列出所有服务的相关信息

包括名称、类型、ClusterIP、外部IP等。
//获取到service的暴露端口
	kubectl get services
	
	示例
	[root@iZ2zefj8x9bih0twyv5rcvZ giftpanel]# kubectl get services
	NAME             TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
	godemo-service   NodePort    10.101.28.30   <none>        7089:31634/TCP   16h
	kubernetes       ClusterIP   10.96.0.1      <none>        443/TCP          41h

8,测试应用 31634就是暴露的端口

curl http://192.168.49.2:31634/giftpanel/test/login?name=999999999999999999999999
返回内容
	<!DOCTYPE html>
	<html>
	<head>
	    <title>Gin HTML Demo xxxxxxxxxx</title>
	</head>
	<body>
		<h1>Welcome to Gin HTML Demo xxxxxxxxxx</h1>
		<p>999999999999999999999999</p>
	</body>

9,从Kubernetes集群中删除

名为godemo-deployment的Deployment
kubectl delete deployment godemo-deployment

10,执行该命令后,将会从集群中删除名为godemo-service的服务

kubectl delete service godemo-service

文章来源:https://blog.csdn.net/qq_25958497/article/details/135091379
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。