小编Cod*_*der的帖子

Kubernetes 入口 nginx 重定向到 https

要将任何 HTTP 流量重定向到启用 tls 的主机上的 HTTPS,我已将以下注释添加到我的入口资源中

nignx.ingress.kubernetes.io/force-ssl-redirect: true
Run Code Online (Sandbox Code Playgroud)

这样,当我卷曲有问题的主机时,我会按预期重定向

在此输入图像描述

但是当我使用浏览器时,HTTP 请求超时。

现在,我不确定在curl工作时我在Nginx ingress conf中是否做错了什么?请问有什么指点吗?谢谢!

完整注释:

   annotations:
    kubernetes.io/ingress.class: nginx-ingress
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/proxy-body-size: 100m
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "300"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "300"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "300"
    nginx.ingress.kubernetes.io/ssl-passthrough: "false"
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
Run Code Online (Sandbox Code Playgroud)

规则

 rules:
  - host: hostX
    http:
      paths:
      - backend:
          serviceName: svcX
          servicePort: 8080
        path: /
  - host: hostY
    http:
      paths:
      - backend:
          serviceName: svcX
          servicePort: 8080
        path: /
  tls:
  - hosts:
    - hostX
  - hosts:
    - hostY
    secretName: hostY-secret-tls
Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 提到的curl是上面规则中的hostY。
  2. 通过浏览器到 hostY 的 HTTPS 有效,因此证书是有效的。

kubernetes nginx-ingress

14
推荐指数
1
解决办法
2万
查看次数

处理不受setrlimit限制的资源

我写了一个简单的程序来限制它的数据大小为65Kb,并验证相同我分配一个超过65Kb的虚拟内存,逻辑上如果我正在做所有正确(如下)malloc调用应该失败,不是吗?

#include <sys/resource.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main (int argc, char *argv[])
{
  struct rlimit limit;


  /* Get max data size . */
  if (getrlimit(RLIMIT_DATA, &limit) != 0) {
    printf("getrlimit() failed with errno=%d\n", errno);
    return 1;
  }

  printf("The soft limit is %lu\n", limit.rlim_cur);
  printf("The hard limit is %lu\n", limit.rlim_max);

  limit.rlim_cur = 65 * 1024;
  limit.rlim_max = 65 * 1024;

  if (setrlimit(RLIMIT_DATA, &limit) != 0) {
    printf("setrlimit() failed with errno=%d\n", errno);
    return 1;
  }

  if (getrlimit(RLIMIT_DATA, &limit) != …
Run Code Online (Sandbox Code Playgroud)

c malloc memory-management ulimit setrlimit

8
推荐指数
1
解决办法
2109
查看次数

UDP 接收查询

int recvfrom(SOCKET            socket, 
             char            * buffer, 
             int               buflen, 
             int               flags, 
             struct sockaddr * from, 
             int             * fromlen);
Run Code Online (Sandbox Code Playgroud)

我知道从套接字recvfrom()读取后立即返回buflen。我的问题是 -

  1. 如果我请求了buflen2000 个数据包并且套接字队列中的单个数据包大小为 2400,该怎么办?

  2. 如果我请求了buflen2000 个数据包,而套接字队列中的单个数据包大小为 1400,该怎么办?

  3. 上述问题的答案对于 TCP 和 UDP 是否相同?如果不是,有什么区别。

提前感谢您的回复。

c sockets udp tcp recvfrom

5
推荐指数
1
解决办法
2640
查看次数

套接字缓冲区大小不增加

int n = 0;
if ( 0 != getsockopt(iSockFd,SOL_SOCKET,SO_RCVBUF, &n, sizeof(n)))
{
    printf("Get socket option failed, errno: %d\n",errno);
}
else
{
    printf("Current socket buff len = %d\n", n);
}
n = 225280;
if(0 != setsockopt(iSockFd, SOL_SOCKET, SO_RCVBUF, (const void *)&n, sizeof(n)))
{
    printf("setsock err errno %d\n", errno);
}
else
{
    printf("setsock opt success\n");
}
n = 0;
if ( 0 != getsockopt(iSockFd,SOL_SOCKET,SO_RCVBUF, &n, sizeof(n)))
{
    printf("Get socket option failed, errno: %d\n",errno);
}
else
{
    printf("After setting socket buff len = …
Run Code Online (Sandbox Code Playgroud)

c sockets linux setsockopt

5
推荐指数
1
解决办法
5411
查看次数

节点池与一个池中的节点数量

在配置 k8 集群时,在数字海洋的仪表板中,在选择集群容量下,我看到一个选项,可以在池中添加节点或完全添加新池。我不太明白其中的区别。

DO 给出了以下建议,这对我来说相当模糊 -

增加池中的节点数量可以让您运行更多计划服务实例。添加更多节点池允许您将 Pod 调度到不同的节点池,以便每个 Pod 都拥有所需的 RAM、CPU 和存储。您可以随时添加和删除节点和节点池。

谁能给我举一个例子,当一个人增加一个池中的节点以及当一个人创建一个不同的池时?

谢谢!

digital-ocean kubernetes

5
推荐指数
2
解决办法
2410
查看次数

在C中查找未使用的枚举成员

找到未使用的枚举成员的最快方法是什么?

逐个评估值将无法工作,因为我有近700名成员,并希望削减一些未使用的值.

c enums

3
推荐指数
1
解决办法
477
查看次数

更改函数内的指针不会反映在函数外部

void alloco(int *ppa)
{
    int i;
    printf("inside alloco %d\n",ppa);
    ppa = (int *)malloc(20);
    ppa[15] = 9;
    printf("size of a %d \n", sizeof(ppa));
    for(i=0;i<20;i++)
    printf("a[%d] = %d \n", i, ppa[i]);
}

int main()
{
    int *app = NULL;
    int i;
    printf("inside main\n");
    alloco(app);
    for(i=0;i<20;i++)
    printf("app[%d] = %d \n", i, app[i]);
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

基本上我想做的就是将一个空指针从my传递main给一个函数(alloco),它分配内存/填充指针所指向的相同位置并返回.我正确地获得了本地打印,这是在函数(alloco)内部但不是main.

我在这里做错了吗?

c pointers

2
推荐指数
2
解决办法
1885
查看次数

访问释放的指针,不应该输出分段错误?

Example -
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void alloco(int **ppa)
{
    int i;
    int *p;
    printf("inside alloco");
    p = malloc(10 * sizeof(int));
    memset(p,0x0, 10 * sizeof(int));
    p[4] = 9;
    p[9] = 9;
    p[8] = 123; // fill the 10 chunks of memory
    printf("size of a %d \n", sizeof(p));
    free(p); //free the pointer!!
    for(i = 0; i < 10; i++)
    printf("a[%d] = %d \n", i, p[i]); //accessing a freed pointer, shouldn't it crash?!
    *ppa = p; // pointing to a …
Run Code Online (Sandbox Code Playgroud)

c pointers

1
推荐指数
1
解决办法
133
查看次数

如何建立uImage?

我有zImage和内核源代码.我做到了

make zImage 
Run Code Online (Sandbox Code Playgroud)

生成zImage.
当我闪烁时,电路板将无法启动.
那么如何将其转换为u -mage,u-boot正确读取?
谢谢!

linux-kernel embedded-linux u-boot

1
推荐指数
1
解决办法
1万
查看次数

再次初始化相同的互斥锁

当我再次初始化相同的互斥变量时会有什么好处?根据pthread_mutex_init()手册页 - http://linux.die.net/man/3/pthread_mutex_init

它应该在errno设置为EBUSY时失败

为什么我没有看到这种行为?下面的代码执行得很好.

lock = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
if (pthread_mutex_init((pthread_mutex_t*)lock, NULL) != 0)
{
    printf("\n mutex init failed\n");
    return 1;
}

if (pthread_mutex_init((pthread_mutex_t*)lock, NULL) != 0)
{
    printf("\n mutex init failed %d\n", errno);
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

c mutex pthreads

1
推荐指数
1
解决办法
342
查看次数

kubernetes PVC 共享单个 PV?

我正在尝试为 3 个 Pod 部署一个持久卷来工作,并且我想使用集群的节点存储,即而不是像 ebs 衍生的外部存储。

为了实现上述目标,我做了以下实验 -

1) 我仅应用了下面定义的 PVC 资源 -

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  creationTimestamp: null
  labels:
    io.kompose.service: pv1
  name: pv1
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
status: {}
Run Code Online (Sandbox Code Playgroud)

此旋转启动了默认存储类的存储集,在我的例子中是数字海洋的体积。所以它创建了一个 1Gi 的卷。

2)创建了 PV 资源和 PVC 资源,如下所示 -

apiVersion: v1
kind: PersistentVolume
metadata:
  name: task-pv-volume
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/data"
Run Code Online (Sandbox Code Playgroud)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  creationTimestamp: null
  labels:
    io.kompose.service: pv1
  name: pv1
spec: …
Run Code Online (Sandbox Code Playgroud)

digital-ocean kubernetes

1
推荐指数
1
解决办法
3669
查看次数