社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
私信  •  关注

Rico

Rico 最近创建的主题
Rico 最近回复了
5 年前
回复了 Rico 创建的主题 » 如何在Kubernetes中配置Ingress nginx?

我不确定您看到了什么错误,发布它们会很有帮助,但从这开始是正确的:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/mandatory.yaml

如中所述 main documentation page 用于nginx入口控制器。如果您使用的是数字海洋,您只需按照 NodePort/Bare-metal instructions 因为目前还没有对数字海洋负载均衡器的支持。

之后,您要检查您的nginx入口控制器是否正在运行:

$ kubectl -n ingress-nginx get pods
NAME                                        READY     STATUS    RESTARTS   AGE
default-http-backend-xxxxxxxxxx-xxxxx       1/1       Running   0          1h
nginx-ingress-controller-xxxxxxxxxx-xxxxx   1/1       Running   0          1h

您还可以检查日志:

$ kubectl -n ingress-nginx nginx-ingress-controller-xxxxxxxxxx-xxxxx

然后您可以创建一个 Ingress 和A Service 那是为入口服务的。

然后,您可以使用 kubernetes.io/ingress.class: "nginx" 注释。

您正在使用 Hyperkit Minikube驱动程序使用 /usr/local/bin/hyperkit 命令行(实际上它使用 xhyve 管理程序)。这么简单:

$ ps -Af | grep hyperkit
    0  9445     1   0  1:07PM ttys002    1:45.27 /usr/local/bin/hyperkit -A -u -F /Users/youruser/.minikube/machines/minikube/hyperkit.pid -c 2 -m 2048M -s 0:0,hostbridge -s 31,lpc -s 1:0,virtio-net -U 2caa5ca9-d55c-11e8-92a0-186590def269 -s 2:0,virtio-blk,/Users/youruser/.minikube/machines/minikube/minikube.rawdisk -s 3,ahci-cd,/Users/youruser/.minikube/machines/minikube/boot2docker.iso -s 4,virtio-rnd -l com1,autopty=/Users/youruser/.minikube/machines/minikube/tty,log=/Users/youruser/.minikube/machines/minikube/console-ring -f kexec,/Users/youruser/.minikube/machines/minikube/bzimage,/Users/youruser/.minikube/machines/minikube/initrd,earlyprintk=serial loglevel=3 user=docker console=ttyS0 console=tty0 noembed nomodeset norestore waitusb=10 systemd.legacy_systemd_cgroup_controller=yes base host=minikube

将告诉您正在运行多少个Hyperkit进程/vm。嗯, minikube only supports one 但是如果你有,你可以再要一个 Docker for Mac 安装。

那么,如果你遵循这一点: How to access the VM created by docker's HyperKit? . 您可以连接到VM AN,查看内部运行的内容:

$ sudo screen /Users/youruser/.minikube/machines/minikube/tty
Welcome to minikube
minikube login: root
                         _             _
            _         _ ( )           ( )
  ___ ___  (_)  ___  (_)| |/')  _   _ | |_      __
/' _ ` _ `\| |/' _ `\| || , <  ( ) ( )| '_`\  /'__`\
| ( ) ( ) || || ( ) || || |\`\ | (_) || |_) )(  ___/
(_) (_) (_)(_)(_) (_)(_)(_) (_)`\___/'(_,__/'`\____)

# docker ps
...  <== shows a bunch of K8s containers
5 年前
回复了 Rico 创建的主题 » elasticsearch pod在没有日志的init状态下失败

对。有办法。您可以通过ssh进入运行pods的机器,并且假设您使用docker,您可以运行:

docker ps -a # Shows all the Exited containers (some of those, part of your pod)

然后:

docker logs <container-id-of-your-exited-elasticsearch-container>

如果您使用 CRIO Containerd 它就像是

crictl logs <container-id>
5 年前
回复了 Rico 创建的主题 » Kubernetes入口nginx不匹配子路径

你需要使用 /* 在路径的末尾:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
    - http:
        paths:
        - path: /one/*
          backend:
            serviceName: test-one-backend
            servicePort: 80
        - path: /two
          backend:
            serviceName: test-two-backend
            servicePort: 80

不是真的 documented widely as of today 但本质上 path 翻译成 location {} 在nginx.conf中阻塞

5 年前
回复了 Rico 创建的主题 » nginx入口控制器隐藏nginx版本

如果你看 configs 你会看到的 server_tokens 可以是在 http, server, location 你的上下文 nginx.conf . 因此,在nginx入口控制器上,它实际上取决于您想在哪里添加该设置(以及如何添加):

5 年前
回复了 Rico 创建的主题 » Kubernetes nginx通过301而不是308进入HTTP到HTTPS重定向?

我猜是tls重定向隐藏了 nginx.ingress.kubernetes.io/permanent-redirect-code 注释。

你可以改变 ConfigMap 为了你 nginx-configuration 所以默认的重定向是301。这是您的nginx入口控制器用于nginx本身的配置。这个 组态图 如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app.kubernetes.io/name: ingress-nginx
    app.kubernetes.io/part-of: ingress-nginx
  name: nginx-configuration
  namespace: ingress-nginx
data:
  use-proxy-protocol: "true"
  http-redirect-code: "301"

你可以找到更多关于 组态图 选项 here . 请注意,如果您更改 组态图 您必须重新启动 nginx-ingress-controller 豆荚。

你也可以把壳装进 nginx入口控制器 弹出并查看控制器创建的实际nginx配置:

kubectl -n ingress-nginx exec -it nginx-ingress-controller-xxxxxxxxxx-xxxxx bash
www-data@nginx-ingress-controller-xxxxxxxxx-xxxxx:/etc/nginx$ cat /etc/nginx/nginx.conf