k8s暴露服务.md

概述

在 rancher k8s 环境下暴露一个服务步骤

创建 deployment -> 创建 Service

示例

添加 repo

Apps -> Repositories ->

安装 gitlab

1
2
3
4
5
6
helm -n $GITLAB_HELM_NS install $GITLAB_HELM_NAME gitlab/gitlab --version 8.4.2 \
--set certmanager-issuer.email=1103098607@qq.com \
--set global.time_zone=Asia/Shanghai \
--set global.hosts.domain=test.helm.xiaoy.cn \
--set global.edition=ce
--timeout 600s

Service NodePort

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: v1
kind: Service
metadata:
labels:
app: web
name: web
spec:
type: NodePort
ports:
- port: 8083 # service(负载均衡器)端口
protocol: TCP
targetPort: 80
nodePort: 30012
selector:
app: web

nodePort
nodePort是 外部 访问k8s集群中service的端口,通过nodeIP: nodePort可以从外部访问到某个service。

port
port是 集群内部 访问service的端口,即通过clusterIP: port可以访问到某个service。
targetPort(使用DockerFile中的EXPOSE)
targetPort是pod上的端口,从port/nodePort上来的数据,经过kube-proxy流入到后端pod的targetPort上,最后进入容器。
targetPort和containerPort必须一致。

containerPort
containerPort是在pod控制器中定义的、pod中的容器需要暴露的端口。
例如,mysql 服务需要暴露 3306 端口,redis 暴露 6379 端口。

k8s 添加 pv pvc

  • Storage -> PersistentVolumes 选择 HostPath 类型的存储即可
  • Storage -> PersistentVolumeClaims 选择刚刚的 pv 进行绑定即可

k8s暴露服务.md
https://abrance.github.io/2024/10/16/mdstorage/domain/k8s/k8s暴露服务/
Author
xiaoy
Posted on
October 16, 2024
Licensed under