Kubernetes POD与NodePort服务发布

发布于:2021-06-11 05:31:02



单一POD发布规范与常用命令
POD发布规范及YAML文件POD发布命令POD端口转发(仅适用于调试)
NodePort Service路由YAML文件服务发布命令


查找最新发布规范样例,可以在官方文档中找到。K8S API Reference


POD发布规范及YAML文件

本YAML文件以发布镜像petclinic为例。
大小写需要严谨。缩进为两个空格。- 为列表格式,代表可以为多个。


假设样例文件为:petclinic-pod.yml
内容如下:


apiVersion: v1
kind: Pod
metadata:
# Pod名字
name: petclinic
spec:
containers:
# 容器名字
- name: petclinic
# 镜像地址
image: spring2go/spring-petclinic:1.0.0.RELEASE

官方样例:https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#pod-v1-core


POD发布命令

登录到K8S Master节点,使用一下命令查看集群状态。



#可以看到K8S内运行的服务/POD.
kubectl get all




#发布POD, 选项-f后面接要发布的文件名称,成功后会显示一行POD created信息。
kubectl apply -f petclinic-pod.yml




#再次查看K8S内运行的服务/POD。
kubectl get all
#可以单独看pod的信息, 用pod的名字,pod选择可以缩写为po。
kubectl get pod petclinic
kubectl describe pod petclinic



POD端口转发(仅适用于调试)

此方法不用于生产环境。



kubectl get po
#前面是本机端口8080转发到POD端口8080.
kubectl port-forward petclinic 8080:8080



NodePort Service路由YAML文件

Service 3种类型: NodePort, LoadBalancer(用于公有云), ClusterIP(K8S内的反向代理)


NodePort Service YAML发布文件


apiVersion: v1
kind: Service
metadata:
# Unique key of the Service instance
name: petclinic
spec:
ports:
# Accept traffic sent to port 80
- name: http
#是本service的端口,在集群内部使用
port: 8080
#对接的后台pod的端口,可以不填
targetPort: 8080
#在本地开启31080端口,K8S要求nodePort范围: 30000 ~ 32767
nodePort: 31080
selector:
# 后台pod标签
app: petclinic
# 本地环境只能选NodePort,看上面service类型。
type: NodePort


为了让服务路由生效,需要调整POD的发布文件
修改样例文件:petclinic-pod.yml
内容如下:(增加了labels)


apiVersion: v1
kind: Pod
metadata:
# Pod名字
name: petclinic
labels:
app: petclinic
spec:
containers:
# 容器名字
- name: petclinic
# 镜像地址
image: spring2go/spring-petclinic:1.0.0.RELEASE

官方参考:
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#service-v1-core


服务发布命令

#可以看到K8S内运行的服务/POD.
kubectl get all




#发布当前目录所有文件
kubectl apply -f .
#再次查看K8S内运行的服务/POD。
kubectl get all




#可以单独看service的信息, 用service的名字,service选择可以缩写为svc。
kubectl describe service petclinic


相关推荐

最新更新

猜你喜欢