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限制
用于将名为godemo-deployment.yaml的YAML文件中定义的Deployment资源应用到Kubernetes集群中
这是一个kubectl命令,用于将名为godemo-deployment.yaml的YAML文件中定义的Deployment资源应用到Kubernetes集群中。
这将会创建或更新Kubernetes中的Deployment资源,以确保其与godemo-deployment.yaml文件中定义的规范一致。
kubectl apply -f godemo-deployment.yaml
。执行该命令后,将会列出所有命名空间中的Pod的相关信息,包括名称、所属命名空间、状态、IP地址等。
kubectl get pods
。执行该命令后,将会列出所有命名空间中的服务的相关信息,包括名称、类型、ClusterIP、外部IP等。
kubectl get services
apiVersion: v1
kind: Service
metadata:
name: godemo-service
spec:
type: NodePort
selector:
app: godemo
ports:
- protocol: TCP
port: 7089
targetPort: 7080
kubectl apply -f godemo-service.yaml
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
包括名称、类型、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
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>
名为godemo-deployment的Deployment
kubectl delete deployment godemo-deployment
kubectl delete service godemo-service