分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

kubernetes Ingress网络配置说明

发布时间:2023-09-06 01:46责任编辑:董明明关键词:配置kubernetes
docker镜像地址

默认后端服务镜像: registry.cn-qingdao.aliyuncs.com/kube8s/defaultbackend:1.0
nginx-Ingress-controller服务镜像:registry.cn-qingdao.aliyuncs.com/kube8s/nginx-ingress-controller:0.8.3
测试服务镜像:registry.cn-qingdao.aliyuncs.com/icommon/hello-world:latest


部署Ingress-controlle默认后端服务

1.配置文件

$ cat default-http-backend.yamlapiVersion: v1kind: ReplicationControllermetadata: ?name: default-http-backend ?namespace: kube-systemspec: ?replicas: 1 ?selector: ???k8s-app: default-http-backend ?template: ???metadata: ?????labels: ???????k8s-app: default-http-backend ???spec: ?????terminationGracePeriodSeconds: 60 ?????containers: ?????- name: default-http-backend ???????image: registry.cn-qingdao.aliyuncs.com/kube8s/defaultbackend:1.0 ????????livenessProbe: ?????????httpGet: ???????????path: /healthz ???????????port: 8080 ???????????scheme: HTTP ?????????initialDelaySeconds: 30 ?????????timeoutSeconds: 5 ???????ports: ???????- containerPort: 8080 ???????resources: ?????????limits: ???????????cpu: 10m ???????????memory: 20Mi ?????????requests: ???????????cpu: 10m ???????????memory: 20Mi---apiVersion: v1kind: Servicemetadata: ?name: default-http-backend ?labels: ???k8s-app: default-http-backend ?namespace: kube-systemspec: ?ports: ?- port: 80 ???targetPort: 8080 ?selector: ???k8s-app: default-http-backend

2.启动服务

kubectl create -f default-http-backend.yaml

3.验证

curl http://$pod_ip:8080/healthz

返回OK,说明部署成功
pod_ip,可以使用kubectl describe 获取


部署nginx-Ingress-controller服务

1.配置文件

$ cat ingress-controller.yamlapiVersion: v1kind: ReplicationControllermetadata: ?name: nginx-ingress-controller ?namespace: kube-system ?labels: ???k8s-app: nginx-ingress-lbspec: ?replicas: 1 ?selector: ???k8s-app: nginx-ingress-lb ?template: ???metadata: ?????labels: ???????k8s-app: nginx-ingress-lb ???????name: nginx-ingress-lb ???spec: ?????#跟apiserver通信采用的serviceaccount不是默认的default,需要一个token,serviceaccount文件见下面 ?????serviceAccount: admin-user ?????serviceAccountName: admin-user ?????hostNetwork: true ????#解决端口无法映射问题 ?????terminationGracePeriodSeconds: 60 ?????containers: ?????- image: registry.cn-qingdao.aliyuncs.com/kube8s/nginx-ingress-controller:0.8.3 ???????name: nginx-ingress-lb ???????readinessProbe: ?????????httpGet: ???????????path: /healthz ???????????port: 80 ???????????scheme: HTTP ???????livenessProbe: ?????????httpGet: ???????????path: /healthz ???????????port: 80 ???????????scheme: HTTP ?????????initialDelaySeconds: 10 ?????????timeoutSeconds: 1 ???????env: ?????????- name: POD_NAME ???????????valueFrom: ?????????????fieldRef: ???????????????fieldPath: metadata.name ?????????- name: POD_NAMESPACE ???????????valueFrom: ?????????????fieldRef: ???????????????fieldPath: metadata.namespace ?????????- name: KUBERNETES_MASTER ???????????value: https://192.168.6.110:6443 #kubeapiserver 地址 ???????ports: ???????- containerPort: 80 ?????????hostPort: 80 ???????- containerPort: 443 ?????????hostPort: 443 ???????args: ???????- /nginx-ingress-controller ???????- --default-backend-service=$(POD_NAMESPACE)/default-http-backend

serviceAccount文件

$ cat admin-user.yamlapiVersion: v1kind: ServiceAccountmetadata: ?name: admin-user ?namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: ?name: admin-userroleRef: ?apiGroup: rbac.authorization.k8s.io ?kind: ClusterRole ?name: cluster-adminsubjects:- kind: ServiceAccount ?name: admin-user ?namespace: kube-system

2.启动服务

kubectl create -f admin-user.yamlkubectl create -f ingress-controller.yaml

3.验证

curl http://$node_ip:8080/healthz

返回OK,说明部署成功


部署hello-world测试服务

1.配置文件

$cat hello-world.yamlapiVersion: extensions/v1beta1kind: Deploymentmetadata: ?name: hello-world spec: ?replicas: 3 ?template: ???metadata: ?????labels: ???????k8s-app: hello-world ????spec: ?????containers: ?????- name: hello-world ????????image: registry.cn-qingdao.aliyuncs.com/icommon/hello-world:latest ---apiVersion: v1kind: Servicemetadata: ?name: hello-world spec: ?type: NodePort ?ports: ?- port: 8080 ???targetPort: 8080 ???????nodePort: 31180 ?selector: ???k8s-app: hello-world

2.启动服务

kubectl create -f hello-world.yaml

3.验证服务

curl http://$node_ip:31180/hello-world/index.jsp

返回以下内容,说明成功部署

<html>
<body>
<h1>Hello World?</h1>
<h2>Hello World!</h2>
</body>
</html>

部署Ingress服务

1.配置文件

$ cat ingress.yamlapiVersion: extensions/v1beta1kind: Ingressmetadata: ?name: hello-ingressspec: ?rules: ????- http: ???????paths: ???????- path: /hello-world/index.jsp ?????????backend: ???????????serviceName: hello-world ???????????servicePort: 8080

2.启动服务

kubectl create -f ingress.yaml

3.验证

curl http://$node_ip/hello-world/index.jsp

返回以下内容,说明成功部署

<html>
<body>
<h1>Hello World?</h1>
<h2>Hello World!</h2>
</body>
</html>

kubernetes Ingress网络配置说明

原文地址:http://blog.51cto.com/2759492/2087931

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved