小编Tib*_*. M的帖子

kubernetes 网络策略仅允许外部流量到达互联网

我尝试在我的 kubernetes 集群中实施网络策略,以将我的 Pod 隔离在命名空间中,但仍然允许它们访问互联网,因为我使用 Azure MFA 进行身份验证。

这是我尝试过的,但似乎无法让它发挥作用。入口按预期工作,但这些策略阻止所有出口。


apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
spec:
  podSelector: {}
  policyTypes:
  - Ingress 
Run Code Online (Sandbox Code Playgroud)
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: grafana-policy
  namespace: default
spec:
  podSelector:
    matchLabels: 
      app: grafana
  ingress:
  - from:
    - podSelector:
       matchLabels: 
        app: nginx-ingress

Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何使上述配置工作,以便我也允许互联网流量但阻止其他 POD 的流量?

kubernetes azure-aks

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

Kubernetes V1.6.2 无法更新 cni 配置:在 /etc/cni/net.d 中找不到网络

基于此(https://kubernetes.io/docs/getting-started-guides/kubeadm/)步骤,我在 Centos 7 box 中安装了 Kubernetes 并运行 kubeadm init 命令。

但节点未处于就绪状态。当我查看 /var/log/messages.log 时。收到以下消息。

Apr 30 22:19:38 master kubelet: W0430 22:19:38.226441    2372 cni.go:157] Unable to update cni config: No networks found in /etc/cni/net.d
Apr 30 22:19:38 master kubelet: E0430 22:19:38.226587    2372 kubelet.go:2067] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Run Code Online (Sandbox Code Playgroud)

我的 kubelet 使用这些参数运行。

 /usr/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.conf --require-kubeconfig=true --pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --cluster-dns=10.96.0.10 --cluster-domain=cluster.local --authorization-mode=Webhook --client-ca-file=/etc/kubernetes/pki/ca.crt --cgroup-driver=systemd
Run Code Online (Sandbox Code Playgroud)

在我的服务器中我没有看到 /etc/cni/net.d 目录。在 /opt/cin/bin 目录中,我看到了这些文件。 …

kubernetes

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

WebDriverException:消息:通过 Selenium Chromedriver python 设置 UserAgent 时,“chromedriver”可执行文件需要在 PATH 中

我是网络抓取的新手,我正在尝试使用以下几行修改我的用户代理:

from selenium import webdriver
chrome_path = r'C:\Users\Desktop\chromedriver_win32\chromedriver.exe'   
driver = webdriver.Chrome(chrome_path)
options = webdriver.ChromeOptions()
options.add_argument('user-agent = Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36')
driver = webdriver.Chrome(chrome_options=options)
Run Code Online (Sandbox Code Playgroud)

环境变量中的路径没问题,但我一直收到此错误消息:

File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\common\service.py", line 76, in startstdin=PIPE)
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py",line 709, in __init__restore_signals, start_new_session)
File "C:\Users\AppData\Local\Programs\Python\Python36-32\lib\subprocess.py",line 997, in _execute_child startupinfo).
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\safia\AppData\Local\Programs\Python\Python36-32\Test 3- User Agent.py", line 9, in <module>
driver = webdriver.Chrome(chrome_options=options)
File "C:\Users\safia\AppData\Local\Programs\Python\Python36-32\lib\site-packages\selenium\webdriver\chrome\webdriver.py", line 68, in __init__ …
Run Code Online (Sandbox Code Playgroud)

python selenium google-chrome selenium-chromedriver selenium-webdriver

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

Kubernetes coredns 就绪探测失败

我设置了一个 Kubernetes 集群,其中包含 1 个主节点 (kube-master) 和 2 个从节点(kube-node-01 和 kube-node-02)

一切都运行良好......现在在 debianstretch->buster 升级之后,我的 coredns podCrashLoopBackOff由于某种原因失败了。

我做了一个kubectl describe,错误是Readiness probe failed: HTTP probe failed with statuscode: 503

Readiness url 对我来说看起来很可疑http-get http://:8080/health delay=0s timeout=1s period=10s #success=1 #failure=3......没有主机名!?那是对的吗?

Liveness属性也没有主机名。

所有虚拟机均可相互 ping 通。

有任何想法吗?

kubernetes coredns

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

水平 pod 自动缩放器在 GKE 上过于激进地扩展自定义指标

我有以下的谷歌Kubernetes发动机水平波德Autoscaller配置比例由度量的自定义部署-RabbitMQ messages ready count特定队列:foo-queue

它正确地获取了度量值。

插入 2 条消息时,它将部署扩展到最多 10 个副本。我希望它可以扩展到 2 个副本,因为 targetValue 是 1 并且准备好了 2 条消息。

为什么它会如此积极地扩展?

HPA 配置:

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: foo-hpa
  namespace: development
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: foo
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: External
    external:
      metricName: "custom.googleapis.com|rabbitmq_queue_messages_ready"
      metricSelector:
        matchLabels:
          metric.labels.queue: foo-queue
      targetValue: 1
Run Code Online (Sandbox Code Playgroud)

rabbitmq kubernetes google-kubernetes-engine kubernetes-hpa

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

将 onChange 处理程序添加到 svelte 中的输入

我尝试使用 onChange 处理程序将asYouType函数添加libphonenumber-js到我的 svelte 输入中,因为我不确定如何通过 2 路绑定来完成此操作。

我已经设法实现了这一点,但它只会在 onBlur 上格式化数字,而不是在用户键入输入时按照预期的行为,如此处libphonenumber-js所示

如何更改我的输入,使其在用户输入时格式化?

<script>
  import { AsYouType } from "libphonenumber-js";

  export let value = "";
  export let label = "";

  let isFocused = false;
  let isTooltipVisible = false;

  const onBlur = () => {
    isFocused = false;
    isTooltipVisible = false;
  };

  const handleChange = val => {
    if (localeKey === "dfc.removal_form.phone") {
      const asYouType = new AsYouType("US");
      value = new AsYouType("US").input(val);
    }
  };
</script>

<div class="input-container input__row …
Run Code Online (Sandbox Code Playgroud)

javascript svelte svelte-component svelte-3

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

如何从外部连接到 Kubernetes 中的无头服务?

我创建了一个无头服务:

apiVersion: v1
kind: Service
metadata:
  name: myapp-service-headless
spec:
  ports:
    - port: 80
  selector:
    app: myapp
  clusterIP: None
Run Code Online (Sandbox Code Playgroud)

从 Kubernetes 仪表板我可以看到它Internal endpoints

myapp-service-headless:80 TCP
myapp-service-headless:0 TCP
Run Code Online (Sandbox Code Playgroud)

在此应用程序中,我还将内部端点设置为:

http://myapp-service-headless
Run Code Online (Sandbox Code Playgroud)

但是从外部如何访问其IP来连接API呢?

比如我的Kubernetes的IP是192.168.99.100,那么连接192.168.99.100可以吗?

现在来自 Kubernetes 仪表板的服务状态

服务

在此输入图像描述

服务详情

在此输入图像描述

ip internals cluster-computing endpoint kubernetes

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

如何在docker容器中优雅地关闭tomcat中的servlts?

到目前为止我发现了什么:

  • “docker stop”向容器中 ID 为 1 的进程发送 SIGTERM。
  • 容器中的进程ID 1是运行tomcat的java进程。*)
  • 是的,tomcat 本身会正常关闭,但 servlet 不会这样做。
  • Servlet 在 2 秒后被杀死,即使它们正在处理请求(!!)

*)旁注:虽然我们的容器入口点是[“/opt/tomcat/bin/catalina.sh”,“run”],但在catalina.sh中,java进程是通过bash buildin“exec”命令启动的,因此java进程取代了shell进程,因此成为新的进程id 1。(我可以通过exec进入正在运行的容器并在其中执行“ps aux”来验证这一点。)顺便说一句,我使用的是tomcat 7.0.88。

我发现有关 tomcat 默认情况下正常关闭的声明(http://tomcat.10.x6.nabble.com/Graceful-Shutdown-td5020523.html - “任何正在进行的连接都将完成”),但我所能看到的是从 docker 发送到 java 进程的 SIGTERM 几乎不会停止正在执行的请求。

我编写了一个小 servlet 来测试此行为:

import javax.ws.rs.*;
import javax.ws.rs.core.*;
import javax.ws.rs.core.Response.Status;

@Path("/")
public class SlowServerRes
{
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    @Path("test1")
    public Response test1(@QueryParam("sleep") final int sleepDurationSec)
    {
        long received = System.currentTimeMillis();
        System.out.println("+++++++++++++++++++++ received request at " + received);
        
        for (int i=1; i <= sleepDurationSec; i++) { …
Run Code Online (Sandbox Code Playgroud)

java tomcat shutdown docker kubernetes

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

Kubernetes Pod 未就绪

我对 Kubernetes 非常陌生。我从最近离开团队的另一位开发人员那里继承了一个副项目——实际上是一个正在进行的 POC。他在虚拟机上做了一个演示,在他突然离开之前我们仍然可以访问该演示。他离开后,我们可以查看他的演示,一切正常。一名团队成员重新启动了虚拟机,现在一切都坏了。我被指派去解决问题。除了 Kubernetes 部分之外,我已经能够恢复所有组件,所有堆栈跟踪都表明目前存在问题。

如前所述,我是 Kubernetes 的新手,因此我缺乏在网上进行正确搜索的词汇。

我运行了一些命令,并将其输出粘贴在下面。如果我理解正确的话,问题在于 k8s 部署未运行:kubectl get all

NAME                        TYPE        CLUSTER-IP      EXTERNAL-IPPORT(S)  AGE                                                 AGE
service/kubernetes          ClusterIP   10.96.0.1       <none>              443/TCP                                             14d
service/app-service-5x7z    NodePort    10.96.215.11    <none>              3000:32155/TCP,3001:32762/TCP,27017:30770/TCP       3d

NAME                                    READY   UP-TO-DATE  AVAILABLE   AGE
deployment.apps/app-deployment-5x7z     0/1     1           0           3d

NAME                                    DESIRED     CURRENT     READY       AGE
replicaset.apps/app-deployment-5x7z     1           1           0           3d
Run Code Online (Sandbox Code Playgroud)

我猜测问题在于 READY 状态为0/1

有人可以指导我如何让这个人回来吗?另外,我在网上看到很多厚重的文档,有没有一个浅库的地方可以让我深入研究 Kubernetes 的工作。我对这个机会感到非常兴奋,但它并不是一个顺利的开始。

kubernetes

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

如何将对象深度属性转换为另一个?

以下是具有重复属性的深度嵌套对象。

如何转换以下深度嵌套的对象

const obj = {
    prop1: {
        properties: { value: {} },
    },
    prop2: {
        properties: { subProp: { properties: { value: {} } } },
    },
    prop3: {
        properties: { subProp: { properties: { subSubProp: { properties: { value: {} } } } } },
    },
};
Run Code Online (Sandbox Code Playgroud)

进入这个:

const obj = {
    prop1: { value: {} },
    prop2: { subProp: { value: {} } },
    prop3: { subProp: { subSubProp: { value: {} } } },
};

//if …
Run Code Online (Sandbox Code Playgroud)

javascript

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