Service大全 20220502
10、service 大全
1)、常用
#### kubectl get pods -o wide
pod:统一访问入口
pod组(负载均衡)
pod组(后)---->统一访问入口(前)


pod1 pod2 pod3 labels:
app:nginx
service selector:
app:nginx

######kubectl get ep 查看pod组
###### kubectl get service

###### 查看service yaml##### kubectl get service web -o yaml

###### 查看 app:nginx#######pods
kubectl get pods -l app=nginx

2)、创建
i)、######service.yaml#####创建 kubectl apply -f service.yaml
https://kubernetes.io/docs/concepts/services-networking/service/

###### kubectl get deployment###################
###### kubectl get svc###################

###查看pods lables### kubectl get pods --show-labels############



vi service.yaml
--------------------------------------------------------------------
apiVersion: v1
kind: Service
metadata:
name:pod-test
spec:
selector:
app: nginx #关联pod 标签
ports:
- protocol: TCP
port: 8888 #Service 端口
targetPort: 80 #容器 端口
type: ClusterIP #端口网络类型
############deployment:pod-test app: nginx#######
##############kubectl apply -f service.yaml#######
###### kubectl get svc############
http://192.168.254.149:32658/

###### kubectl get service
###### kubectl get ep



####扩容## kubectl scale deployment pod-test --replicas=6


####kubectl get pods
#### kubectl get ep -w
#### kubectl logs

3)、type: ClusterIP NodePort #端口网络类型
###### kubectl get svc############查看端对内、外端口###
i)、ClusterIP 对内 VIP

如node2\node3\pod可访
#####vi service.yaml#####type: ClusterIP

##############kubectl apply -f service.yaml#######
###### kubectl get svc

#####################ClusterIP 对内#################service:pod-test########
k8s-master curl 10.1.164.21:8888

k8s-node2 curl 10.1.164.21:8888

k8s-node3 curl 10.1.164.21:8888

kubectl get ep
kubectl get pods
kubectl exec -it my-pod2 -- sh

kubectl run bs --image=busybox -- sleep 24h
####kubectl get pods

kubectl exec -it bs -- sh ##进入容bs
wget 10.1.164.21:8888

ii)、NodePort 对外
端口范围 30000~32767

vi service.yaml###########type: NodePort
##############kubectl apply -f service.yaml#######
--------------------------------------------------------------------
spec:
selector:
app: web #关联pod 标签
ports:
- port: 8888 #Service 端口
protocol: TCP
targetPort: 80 #容器 端口
nodePort: 30009
type: NodePort #端口网络类型

####kubectl apply -f service.yaml#######

####kubectl get service

####kubectl get svc

#####################NodePort 对内#service:pod-test########
内网 k8s-master curl 10.1.164.21:8888

外网 k8s-master http://192.168.254.149:30401/
k8s-node2 http://192.168.254.154:30401/
k8s-node3 http://192.168.254.155:30401/



30401端口监听####k8s-maste/k8s-node2/k8s-node3
ss -anpt |grep 30401



########nodePort: 30002 自定义端口#####********************************************************************************************************************************
vi service.yaml#####type: NodePort app:nginx
##############kubectl apply -f service.yaml#######

####kubectl get service
####kubectl get svc

外网 k8s-master http://192.168.254.149:30002/
k8s-node2 http://192.168.254.154:30002/
k8s-node3 http://192.168.254.155:30002/



********************************************************************************************************************************
iii)、LoadBalancer 对外
云平台:负载均衡 EXTERNAL-IP



浙公网安备 33010602011771号