暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ingress

原创 leetaedong 2022-06-13
379

spec:
containers:
- name: httpd
image: 10.145.197.182/ops/httpd:latest #镜像从私有仓库中进行拉取
---
apiVersion: v1
kind: Service
metadata:
name: httpd-svc
namespace: ingress-test
spec:
type: NodePort
selector:
name: httpd
ports:
- protocol: TCP
port: 80
targetPort: 80
nodePort: 32134
创建tomcat及service资源文件
# vim tomcat.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: tomcat
namespace: ingress-test
spec:
replicas: 3
selector:
matchLabels:
name: tomcat
template:
metadata:
labels:
name: tomcat
spec:
containers:
- name: tomcat
image: 10.145.197.182/ops/tomcat:latest
---
apiVersion: v1
kind: Service
metadata:
name: tomcat-svc
namespace: ingress-test
spec:
type: NodePort
selector:
name: tomcat
ports:
- protocol: TCP
port: 8080
targetPort: 8080
nodePort: 32135
创建并查看
#创建
kubectl create -f httpd.yaml
kubectl create -f tomcat.yaml
#查看状态
kubectl get pods -n ingress-test
kubectl get svc -n ingress-test

可以看到通过nodeport暴露的方式是没有问题的,但是到该种方式在大规模的集群服务中,有很大的缺陷,所以接下来通过ingress-nginx进行实现。
创建ingress-nginx
从GitHub上下载yaml文件:官方地址
wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud/deploy.yaml
kubectl apply -f deploy.yaml
# 部署环境为私有环境没有lb 所有把Deployment改成DaemonSet 同时网络模式使用hostNetwork
# 同时配文件 跟启动参数修改
# kubelet 参数node-ip 为ipv6 模式记得修改 service ipFamily: IPv6 模式不然新版本webhook 会报错
# 报错内容 Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post https://ingress-nginx-controller-admission.ingress-nginx.svc:443/extensions/v1beta1/ingresses?timeout=30s: no endpoints available for service "ingress-nginx-controller-admission"
#对照如下deploy.yaml
apiVersion: v1
kind: Namespace
metadata:
name: ingress-nginx
labels:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
---
# Source: ingress-nginx/templates/controller-serviceaccount.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
labels:
helm.sh/chart: ingress-nginx-2.10.0
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/version: 0.33.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: controller
name: ingress-nginx
namespace: ingress-nginx
---
# Source: ingress-nginx/templates/controller-configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
labels:
helm.sh/chart: ingress-nginx-2.10.0
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/version: 0.33.0
app.kubernetes.io/managed-by: Helm
app.kubernetes.io/component: controller
name: ingress-nginx-controller
namespace: ingress-nginx
data:
allow-backend-server-header: "true"
client-body-buffer-size: 1024k
enable-underscores-in-headers: "true"
generate-request-id: "true"
ignore-invalid-headers: "true"
large-client-header-buffers: 4 128k
log-format-upstream: $remote_addr - [$remote_addr] - $remote_user [$time_local]
"$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_length
"$http_x_forwarded_for" $remote_addr $request_time [$proxy_upstream_name] $upstream_addr
$upstream_response_length $upstream_response_time $upstream_status $req_id $host
max-worker-connections: "65536"
proxy-body-size: 8192m
proxy-buffer-size: 64k
proxy-connect-timeout: "300"
proxy-next-upstream-timeout: "10"
proxy-read-timeout: "300"
proxy-send-timeout: "300"

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论