【问题标题】:pods can't access to kubernets clusterIP service (10.96.0.1)Pod 无法访问 kubernets clusterIP 服务 (10.96.0.1)
【发布时间】:2021-07-02 14:57:26
【问题描述】:

最近我确实在使用仿生 ubuntu 和 lxc 的旧双核 AMD 机器上使用 kubeadm 安装了 kubernetes。 这是我在网上找到的 lxc 个人资料:

config:
  limits.cpu: "2"
  limits.memory: 2GB
  limits.memory.swap: "false"
  linux.kernel_modules: nf_conntrack_ipv4,ip_tables,ip6_tables,netlink_diag,nf_nat,overlay,br_netfilter
  raw.lxc: "lxc.apparmor.profile=unconfined\nlxc.cap.drop= \nlxc.cgroup.devices.allow=a\nlxc.mount.auto=proc:rw
    sys:rw"
  security.nesting: "true"
  security.privileged: "true"
description: LXD profile for Kubernetes
devices:
  eth0:
    name: eth0
    nictype: bridged
    parent: lxdbr0
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: k8s
used_by:
 - /1.0/containers/kmaster1
 - /1.0/containers/kworker1

我确实跑了:

# mount --make-rshared /
# lxc config device add "kmaster1" "kmsg" unix-char source="/dev/kmsg" path="/dev/kmsg"
# lxc config device add "kworker1" "kmsg" unix-char source="/dev/kmsg" path="/dev/kmsg"

kube-proxy 无法运行,因为此错误消息:

write /sys/module/nf_conntrack/parameters/hashsize: operation not supported

所以我确实通过编辑kube-proxy 配置并将连接跟踪设置为零来修复它。 之后我确实将flannel 部署为cni。 我的 Pod 现在无法访问默认集群 IP 10.96.0.1,但是服务在那里:

#kubectl describe svc kubernetes
Name:              kubernetes
Namespace:         default
Labels:            component=apiserver
                   provider=kubernetes
Annotations:       <none>
Selector:          <none>
Type:              ClusterIP
IP Families:       <none>
IP:                10.96.0.1
IPs:               10.96.0.1
Port:              https  443/TCP
TargetPort:        6443/TCP
Endpoints:         10.46.157.182:6443
Session Affinity:  None
Events:            <none>

可能禁用连接跟踪会产生问题,并且正在使用NAT,我不知道。 有什么办法解决吗?

【问题讨论】:

    标签: kubernetes lxc flannel lxd


    【解决方案1】:

    我分两步解决了这个问题: 首先,我确实将kube-proxy 配置更改为默认值。 然后我写信给 HOST/sys/module/nf_conntrack/parameters/hashsize kube-proxy 手动需要的哈希大小。然后删除 kube-proxy pod 并让它部署以再次自动创建主题。 主要问题是Flannel 配置。 flannel 部署不查找我的集群默认 ip 范围并将其设置为 ip 范围 10.244.0.0/16 所以我确实编辑了它的配置并将其更改为我的范围:

    kubectl edit cm -n kube-system kube-flannel-cfg
    

    再一次,删除所有 flannel pod 并让它部署以再次自动创建它们。

    现在我的 pod 可以访问 kubernetes 默认 clusterIP 服务了。

    【讨论】:

      猜你喜欢
      • 2021-03-16
      • 2016-07-30
      • 1970-01-01
      • 2020-02-04
      • 1970-01-01
      • 2018-10-29
      • 2021-09-17
      • 1970-01-01
      • 2021-02-09
      相关资源
      最近更新 更多