V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
OldCarMan
V2EX  ›  Kubernetes

kubeadm init --config [file.yaml] 后实际配置与 yaml 里的配置不符

  •  
  •   OldCarMan · 2023-03-19 10:19:59 +08:00 · 1250 次点击
    这是一个创建于 609 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天使用 kubeadm reset 后,再使用 kubeadm init 来重新初始化 k8s 时,发现初始化后实际配置跟我 yaml 设定的配置不一样。

    具体情况,打个比方:我 yaml 文件里面 criSocket(参考文档)配置的是:

    criSocket: unix:///var/run/cri-dockerd.sock
    

    然而实际情况得到的 criSocket 则是:

    criSocket: unix:///var/run/containerd/containerd.sock
    
    下面是我 init 初始化日志&yaml 配置&InitConfiguration 实际配置结果:
    • 这是调用 kubeadm init 初始化成功输出(没报错):
    root@master1 ~/k8s/]# kubeadm init --config=/root/k8s/kubeadm/config.yaml --upload-certs
    [init] Using Kubernetes version: v1.26.0
    [preflight] Running pre-flight checks
    	[WARNING FileExisting-tc]: tc not found in system path
    [preflight] Pulling images required for setting up a Kubernetes cluster
    [preflight] This might take a minute or two, depending on the speed of your internet connection
    [preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
    
    ...
    
    Your Kubernetes control-plane has initialized successfully!
    
    To start using your cluster, you need to run the following as a regular user:
    
      mkdir -p $HOME/.kube
      sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
      sudo chown $(id -u):$(id -g) $HOME/.kube/config
    
    • 这是我的 yaml 配置文件:
    apiVersion: kubeadm.k8s.io/v1beta3
    kind: InitConfiguration
    nodeRegistration:
      criSocket: unix:///var/run/cri-dockerd.sock
      kubeletExtraArgs:
        runtime-cgroups: /system.slice/docker.service
        pod-infra-container-image: registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
    
    ---
    apiVersion: kubeproxy.config.k8s.io/v1alpha1
    kind: KubeProxyConfiguration
    mode: ipvs
    ipvs:
      minSyncPeriod: 8s
      syncPeriod: 8s
      scheduler: 'wrr'
      
      ....(省略其他配置)
    
    
    • 这是我运行kubeadm config print init-defaults后 输出的实际配置日志
    [root@master1 k8s]# kubeadm config print init-defaults
    apiVersion: kubeadm.k8s.io/v1beta3
    bootstrapTokens:
    - groups:
      - system:bootstrappers:kubeadm:default-node-token
      token: abcdef.0123456789abcdef
      ttl: 24h0m0s
      usages:
      - signing
      - authentication
    kind: InitConfiguration
    localAPIEndpoint:
      advertiseAddress: 1.2.3.4
      bindPort: 6443
    nodeRegistration:
      criSocket: unix:///var/run/containerd/containerd.sock
      imagePullPolicy: IfNotPresent
      name: node
      taints: null
    ---
    
    .....(省略其他配置)
    
    
    • 大佬们觉得是什么问题,另外大家平时是怎么部署 k8s 集群的,谢谢大家回复。
    7 条回复    2023-03-23 11:06:14 +08:00
    zed1018
        1
    zed1018  
       2023-03-19 12:00:49 +08:00
    op 有点厉害,手动部署集群么。我是直接用的 k3s
    OldCarMan
        2
    OldCarMan  
    OP
       2023-03-19 12:15:22 +08:00
    @zed1018 主要是想顺便熟悉一下 k8s 环境,以后遇到问题定位起来可能会快些;另外熟悉一些常用配置,可能也有利于后面快速调优需要;
    哈哈,夹点东西:不过做任何事情都有潜在的价值判断和价值取向,时间等各种资源允许,很多东西当然多多益善,但大部分时候,可能是鱼和熊掌的关系。
    seers
        3
    seers  
       2023-03-19 16:25:53 +08:00
    /var/run/cri-dockerd.sock
    你看下有没有这个,我记得是轮询,如果没有就找下一个
    OldCarMan
        4
    OldCarMan  
    OP
       2023-03-19 22:06:55 +08:00
    @seers 存在的,所以我才纳闷,init 过程也没报错。😂
    runzhliu
        5
    runzhliu  
       2023-03-21 17:19:06 +08:00
    --v 10 打印一下 debug 的日志
    OldCarMan
        6
    OldCarMan  
    OP
       2023-03-23 11:05:41 +08:00
    @runzhliu 谢谢回复,我的问题,这个指令返回的是,kubeadm config 默认的配置,而不是 manual 配置。
    OldCarMan
        7
    OldCarMan  
    OP
       2023-03-23 11:06:14 +08:00
    这个指令“kubeadm config print init-defaults”
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2395 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 15:58 · PVG 23:58 · LAX 07:58 · JFK 10:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.