创建Pod之后,我们的服务只能在主机上访问,不能外部访问,需要将服务暴露给外部。kubernetes service从逻辑上代表了一组Pod,同时Ip地址不变。kubernetes会建立和维护service和pod之间的关系,无论后端Pod如何变化,对客户端无影响,因为service没有变。
1.创建Service
apiVersion: v1 #Service使用的API版本
kind: Service #资源类型
metadata:
name: kubia-service #资源名称
spec:
selector:
app: kubia #选择的Pod
ports:
- protocol: TCP
port: 80 #service端口
targetPort: 8080 #pod端口
cluster-Ip是一个虚拟Ip
查看service详情
cluster Ip通过iptables映射到pod Ip
2.域名访问
在Pod内部可以通过域名访问Pod
通过如下命令进入伪终端TTY
# 通过bash获得 pod 中某个容器的TTY,相当于登录容器 kubectl exec -it <pod-name> -c <container-name> -- bash