当前位置:网站首页>Kubernetes resource object introduction and common commands (III)
Kubernetes resource object introduction and common commands (III)
2022-07-01 23:38:00 【Jiang Xiaonan】
Service
A set of Pods An abstract method that is exposed as a network service . It can also be understood as Pod Service discovery and load balancing .
Service discovery and load balancing :Service Will detect pod The state of , Traffic will only be sent to normal with average scores pod in .

establish Service
expose Deploy. port 8000.
Command line mode
[[email protected] ~]# kubectl expose deployment my-app --port=8000 --target-port=80
service/my-app exposed
[[email protected] ~]# kubectl get service
yaml The way ,service.yml
apiVersion: v1
kind: Service
metadata:
labels:
app: my-app
name: my-app
spec:
selector:
app: my-app
ports:
- port: 8000
protocol: TCP
targetPort: 80
[[email protected] ~]# kubectl apply -f service.yml
service/my-app created
[[email protected] ~]#
see Service
[[email protected] ~]# kubectl get service -n default
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23h
my-app ClusterIP 10.96.2.98 <none> 8000/TCP 6s
[[email protected] ~]#
You can see what we created above Service Of ip by 10.96.2.98
.
[[email protected] ~]# curl 10.96.2.98:8000
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
...
</html>
[[email protected] ~]#
Be careful : We can use ip:8000
In the form of any node access in the cluster . We can also do that pod Inside Use domain name : port
Form access . The form of domain name :service name . Namespace .svc: port . for example :my-app.default.svc:8000
.
Expand :
see pod label
[[email protected] ~]# kubectl get pod [podname] --show-labels
NAME READY STATUS RESTARTS AGE LABELS
my-app-5ff664f457-l7792 1/1 Running 1 20h app=my-app,pod-template-hash=5ff664f457
my-app-5ff664f457-r69z5 1/1 Running 1 20h app=my-app,pod-template-hash=5ff664f457
my-app-5ff664f457-w2d6q 1/1 Running 1 20h app=my-app,pod-template-hash=5ff664f457
my-app-5ff664f457-xsz9l 1/1 Running 1 20h app=my-app,pod-template-hash=5ff664f457
[[email protected] ~]#
Use tags to retrieve Pod
[[email protected] ~]# kubectl get pod -l app=my-app
NAME READY STATUS RESTARTS AGE
my-app-5ff664f457-l7792 1/1 Running 1 20h
my-app-5ff664f457-r69z5 1/1 Running 1 20h
my-app-5ff664f457-w2d6q 1/1 Running 1 20h
my-app-5ff664f457-xsz9l 1/1 Running 1 20h
[[email protected] ~]#
Delete Service
[[email protected] ~]# kubectl delete service my-app
service "my-app" deleted
[[email protected] ~]#
ClusterIP

We created Service The default is ClusterIP, It's called clustering ip, It can only be used inside the cluster . Equate to :
kubectl expose deployment my-app --port=8000 --target-port=80 --type=ClusterIP
apiVersion: v1
kind: Service
metadata:
labels:
app: my-app
name: my-app
spec:
ports:
- port: 8000
protocol: TCP
targetPort: 80
selector:
app: my-app
type: ClusterIP
NodePort

Created this way Service It can also be accessed outside the cluster . Because he will be in every pod Show a new port .
Command line mode
[[email protected] ~]# kubectl expose deploy my-app --port=8000 --target-port=80 --type=NodePort
service/my-app exposed
[[email protected] ~]#
yaml The way .service.yml
apiVersion: v1
kind: Service
metadata:
labels:
app: my-app
name: my-app
spec:
ports:
- port: 8000
protocol: TCP
targetPort: 80
selector:
app: my-app
type: NodePort
kubectl apply -f service.yml
[[email protected] ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 25h
my-app NodePort 10.96.198.191 <none> 8000:32047/TCP 39s
[[email protected] ~]#
Contrast found in PORT(S) A mapping port is added in 32047, This port is available on every node , Can pass node ip:30247
Access outside the cluster .

NodePort In addition to being accessible outside the cluster , The rest and ClusterIP Agreement .
Summary
NodePort The scope is 30000-32767 Randomly generated between . ClusterIP Can only be used within a cluster . NodePort Can pass node ip: new port
Access outside the cluster .Whether it's ClusterIP still NodePort, Will generate CLUSTER-IP
, It can be used in the cluster .Use ip: port
To use on cluster nodes , anddomain name : port
To be in pod Internal use .How to write a domain name : service name . In the namespace .svc
边栏推荐
- Redis AOF log
- PostgreSQL notes (10) dynamically execute syntax parsing process
- Matplotlib common settings
- 小程序表单校验封装
- 神经网络物联网的未来趋势与发展
- MT manager test skiing Adventure
- Current situation and future development trend of Internet of things
- const // It is a const object...class nullptr_t
- vs2015 AdminDeployment.xml
- How to display real-time 2D map after rviz is opened
猜你喜欢
物联网技术应用属于什么专业分类
Matplotlib common charts
Notes to problems - file /usr/share/mysql/charsets/readme from install of mysql-server-5.1.73-1 glibc23.x86_ 64 c
from pip._internal.cli.main import main ModuleNotFoundError: No module named ‘pip‘
kubernetes资源对象介绍及常用命令(三)
Matplotlib常用設置
神经网络物联网的发展趋势和未来方向
Redis 主从同步
What professional classification does the application of Internet of things technology belong to
Zero foundation tutorial of Internet of things development
随机推荐
const // It is a const object...class nullptr_t
ADO.NET 之sqlConnection 对象使用摘要
Postgresql源码(58)元组拼接heap_form_tuple剖析
dat. GUI
PostgreSQL source code (57) why is the performance gap so large in hot update?
ShanDong Multi-University Training #3
距离度量 —— 汉明距离(Hamming Distance)
PostgreSQL source code (58) tuple splicing heap_ form_ Tuple analysis
Create Ca and issue certificate through go language
SecurityUtils.getSubject().getPrincipal()为null的问题怎么解决
硅谷产品实战学习感触
2022-07-01: at the annual meeting of a company, everyone is going to play a game of giving bonuses. There are a total of N employees. Each employee has construction points and trouble points. They nee
Matplotlib common charts
[must] bm41 output the right view of the binary tree [medium +]
Is it safe to choose mobile phone for stock trading account opening in Shanghai?
2021 RoboCom 世界机器人开发者大赛-高职组复赛
使用uni-simple-router,动态传参 TypeError: Cannot convert undefined or null to object
JS - use of arguments
Create Ca and issue certificate through go language
What professional classification does the application of Internet of things technology belong to