是否可以在GKE中配置kube-proxy?
我可以看到从守护程序集创建的容器,但是看不到守护程序集本身。
感谢您的帮助。
答案 0 :(得分:0)
在节点级别,系统由Kubernetes K8s管理,而在主控级别,系统为managed by GKE。 master operates并运行Kubernetes API服务器,核心资源控制器和调度程序。
即使kube-proxy驻留在节点内,群集仍负责kube-proxy,并且请记住,在GKE中,群集主服务器不可访问。
虽然可以configure the proxy in Kubernetes k8s,但在GKE中是不可能的。
对于守护程序,请确保您正在浏览所有名称空间。
$ kubectl get ds --all-namespaces
答案 1 :(得分:0)
k8s 中的 kube-proxy pod(不仅在 GKE 中)被创建为 Static Pod。
Kubelet 会在 Kubernetes API 服务器上为每个静态 Pod 自动创建所谓的镜像 Pod,因此 Pod 在那里可见,但无法从 API 服务器进行控制。2
这就是您不能将其编辑和配置为通常的 API 对象的原因。
但是,您可以在节点上编辑 kube-proxy 清单,kubelet 会应用新配置。 位于
中每个节点上的静态 pod 清单 <块引用>/etc/kubernetes/manifests//etc/kubernetes/manifests/kube-proxy.manifest
您可以通过 ssh 进入节点并手动更改它,但我们可以使用 cilium 方法将其自动化,使用 DaemonSet 删除 kube-proxy3 并稍微修改它4。
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: kube-proxy-configurator
namespace: kube-system
spec:
selector:
matchLabels:
name: kube-proxy-configurator
template:
metadata:
labels:
name: kube-proxy-configurator
spec:
initContainers:
- command:
- /bin/sh
- -c
- |
echo 'Changing kube-proxy iptables-min-sync-period'
sed -i 's/iptables-min-sync-period=10s/iptables-min-sync-period=2s/g' /etc/kubernetes/manifests/kube-proxy.manifest
echo 'All Done!'
image: alpine:latest
name: kube-proxy-configurator
securityContext:
privileged: true
volumeMounts:
- mountPath: /etc/kubernetes
name: kubernetes-configs
containers:
- image: k8s.gcr.io/pause
name: pause
terminationGracePeriodSeconds: 0
volumes:
- hostPath:
path: /etc/kubernetes
type: Directory
name: kubernetes-configs
只要应用它,每个节点上的 kube-proxy 配置都会改变(即使是在自动缩放器新创建的)。
kubectl apply -f kube-proxy-configurator.yml