实战练习
设置配置环境:
[candidate@node-1] $ kubectl config use-context k8s
Task
按如下要求调度一个 pod:
名称:nginx-kusc00401
Image:nginx
Node selector:disk=ssd
理论学习
Kubernetes Ingress
Ingress 提供从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源所定义的规则来控制。
Ingress 资源示例:
apiVersion: networking.k8s.io/v1 # 指定 Kubernetes 中使用的 API 版本
kind: Ingress # 指定对象的类型
metadata: # 包含有关对象的元数据信息
name: minimal-ingress
annotations: # 配置 Nginx Ingress 控制器的重写目标
nginx.ingress.kubernetes.io/rewrite-target: /
spec: # 指定了 Ingress 对象的规范,即其配置
ingressClassName: nginx-example # 指定要使用的 Ingress 控制器的类别或类型
rules: # 定义路由规则
- http:
paths: # 定义了针对特定路径的路由规则列表
- path: /testpath
pathType: Prefix # 指定路径的类型 "Prefix"(前缀匹配) "Exact"(精确匹配)
backend: # 指定后端服务
service:
name: test
port:
number: 80
操作步骤
- (标准步骤) 进入题目指定集群
$ kubectl config use-context k8s
- 输出默认 yaml 文件
$ kubectl run nginx—kusc00401 --image=nginx --dry-run=client -o yaml > pod.yaml
$ vim pod.yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: null
labels:
run: nginx-kusc00401
name: nginx-kusc00401
spec:
containers:
- image: nginx
name: nginx-kusc00401
imagePullPolicy: IfNotPresent # 新增内容
resources: {}
nodeSelector: # 新增内容
disk: ssd # 新增内容
dnsPolicy: ClusterFirst
restartPolicy: Always
status: {}
- 应用该配置文件
$ kubectl apply -f pod.yaml
检查命令
- 确保系统正常运行 (Running)
$ kubectl get pod nginx-kusc00401 -o wide
参考链接:https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/#default-ingress-class