新足迹

 找回密码
 注册

精华好帖回顾

· 周末随笔 - Adelaide (2008-9-16) pangpang · 澳洲情缘---六弟(下) (2007-7-15) 安远翔
· 印记*如果在墨尔本遇见你。。。 (2010-11-6) 碧邪 · 【提车作业】我的跨省寻“驹JEEP”经历及驾驶感受(更新多图) (2016-7-2) Zhibolong
Advertisement
Advertisement
查看: 2282|回复: 24

kubernetes 问题,这里碰碰运气 (变相解决了) [复制链接]

发表于 2023-4-26 21:04 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 eric_gao 于 2023-4-29 17:31 编辑

车库里有个micro server, 内存很大,跑了好几个虚拟机,突发奇想,做个kubernetes cluster, 不想minikube,想做个真正的两节点cluster。

用的是最新1.27

master node 初始化一切正常

[student@control ~]$ kubectl get all -A
NAMESPACE      NAME                                  READY   STATUS    RESTARTS      AGE
kube-flannel   pod/kube-flannel-ds-txsfl             1/1     Running   0             23h
kube-system    pod/coredns-5d78c9869d-tp76m          1/1     Running   0             23h
kube-system    pod/coredns-5d78c9869d-tpgds          1/1     Running   0             23h
kube-system    pod/etcd-control                      1/1     Running   3 (23h ago)   23h
kube-system    pod/kube-apiserver-control            1/1     Running   3 (23h ago)   23h
kube-system    pod/kube-controller-manager-control   1/1     Running   3 (23h ago)   23h
kube-system    pod/kube-proxy-wfzlk                  1/1     Running   0             23h
kube-system    pod/kube-scheduler-control            1/1     Running   3 (23h ago)   23h

NAMESPACE     NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
default       service/kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP                  23h
kube-system   service/kube-dns     ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   23h

NAMESPACE      NAME                             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR            AGE
kube-flannel   daemonset.apps/kube-flannel-ds   1         1         1       1            1           <none>                   23h
kube-system    daemonset.apps/kube-proxy        1         1         1       1            1           kubernetes.io/os=linux   23h

NAMESPACE     NAME                      READY   UP-TO-DATE   AVAILABLE   AGE
kube-system   deployment.apps/coredns   2/2     2            2           23h

NAMESPACE     NAME                                 DESIRED   CURRENT   READY   AGE
kube-system   replicaset.apps/coredns-5d78c9869d   2         2         2       23h
[student@control ~]$

[student@control ~]$ kubectl get nodes
NAME      STATUS   ROLES           AGE   VERSION
control   Ready    control-plane   23h   v1.27.1
[student@control ~]$


但是节点1, join的时候,kubelet初始化失败, 提示failed to parse kubelet flag: unknown flag: --container-runtime


-- The start-up result is done.
Apr 26 20:58:14 node1 kubelet[82213]: E0426 20:58:14.003156   82213 run.go:74] "command failed" err="failed to parse kubelet flag: unknown flag: --cont>
Apr 26 20:58:14 node1 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE
Apr 26 20:58:14 node1 systemd[1]: kubelet.service: Failed with result 'exit-code'.

貌似无解啊。 看了service 的定义,--container-runtime 是kubeadm join的时候动态生成的flag, 1.24-1.27 都取消了,目前只接受 --container-runtime=remote作为临时过度,  但是1.27 kubelet  join cluster的时候, 用的是 --container-runtime=docker

[student@node1 ~]$ systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: activating (auto-restart) (Result: exit-code) since Wed 2023-04-26 21:01:28 AEST; 1s ago
     Docs: https://kubernetes.io/docs/
  Process: 82387 ExecStart=/usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime=docker --hostname-override=node1 --kubecon>
Main PID: 82387 (code=exited, status=1/FAILURE)

Apr 26 21:01:28 node1 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE
Apr 26 21:01:28 node1 systemd[1]: kubelet.service: Failed with result 'exit-code'.
[student@node1 ~]$


想过downgrade node1的kubelet, 但是1.24-1.27 都是这个熊样,再往前,和master小版本相差太多,我记得好像worker node和master node最多可以相差2个小版本的。

想问问大神们有什么办法跳过这里?  谢谢, 谢谢,谢谢了。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220
Advertisement
Advertisement

发表于 2023-4-26 21:06 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整

发表于 2023-4-26 21:09 |显示全部楼层
此文章由 SLCOW 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 SLCOW 所有!转贴必须注明作者、出处和本声明,并保持内容完整
Removal of --container-runtime command line argument
The kubelet accepts a deprecated command line argument, --container-runtime, and the only valid value would be remote after dockershim code is removed. Kubernetes v1.27 will remove that argument, which has been deprecated since the v1.24 release.

发表于 2023-4-26 21:28 |显示全部楼层
此文章由 SLCOW 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 SLCOW 所有!转贴必须注明作者、出处和本声明,并保持内容完整
试一下 /var/lib/kubelet/kubeadm-flags.env , which contains a list of flags to pass to the kubelet when it starts.

发表于 2023-4-26 21:39 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
SLCOW 发表于 2023-4-26 21:28
试一下 /var/lib/kubelet/kubeadm-flags.env , which contains a list of flags to pass to the kubelet w ...

试过了以下两个

/var/lib/kubelet/kubeadm-flags.env

/etc/sysconfig/kubelet

也重新安装了kubelet, 但是kubeadm join,一初始化, 还是 --container-runtime=docker,  气的半死。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-4-27 09:50 |显示全部楼层
此文章由 neohope 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 neohope 所有!转贴必须注明作者、出处和本声明,并保持内容完整
你的container runtime跑的啥?  试试containerd

When Docker runtime support is removed in a future release (currently planned for the 1.22 release in late 2021) of Kubernetes it will no longer be supported and you will need to switch to one of the other compliant container runtimes, like。containerd or CRI-O
hmm
Advertisement
Advertisement

发表于 2023-4-27 10:32 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
neohope 发表于 2023-4-27 09:50
你的container runtime跑的啥?  试试containerd

When Docker runtime support is removed in a future re ...

我用的就是containerd
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-4-27 13:49 |显示全部楼层
此文章由 间风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 间风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
不知道你是什么系统,我在 ubuntu server 22.04.1上测试毫无问题
Master Node:

  1. #!/bin/bash

  2. # Synchronize the package index files and install the packages below
  3. sudo apt-get update

  4. sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \
  5.         ca-certificates \
  6.         curl \
  7.         gnupg \
  8.         lsb-release

  9. sudo mkdir -p /etc/apt/keyrings
  10. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  11. echo \
  12.         "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  13.         $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


  14. sudo apt-get update
  15. sudo DEBIAN_FRONTEND=noninteractive apt-get install -y  containerd.io

  16. # setup containerd
  17. sudo mkdir -p /etc/containerd
  18. containerd config default | sudo tee /etc/containerd/config.toml
  19. sudo sed -i 's/SystemdCgroup\ =\ false/SystemdCgroup\ =\ true/g' /etc/containerd/config.toml
  20. sudo systemctl restart containerd

  21. # install kubernetes
  22. sudo apt-get update
  23. sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
  24. echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

  25. sudo apt-get update
  26. k8sversion=1.27.1-00
  27. echo "sudo apt-get install -y kubelet=$k8sversion kubeadm=$k8sversion kubectl=$k8sversion"
  28. sudo DEBIAN_FRONTEND=noninteractive apt-get install -y kubelet=${k8sversion} kubeadm=${k8sversion} kubectl=${k8sversion}
  29. sudo apt-mark hold kubeadm kubelet kubectl

  30. # --pod-network-cidr=10.244.0.0/16 match https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
  31. # If you use custom podCIDR (not 10.244.0.0/16) you first need to download the above manifest and modify the network to match your one.
  32. sudo kubeadm init --pod-network-cidr=10.244.0.0/16

  33. mkdir -p $HOME/.kube
  34. sudo cp -rf /etc/kubernetes/admin.conf $HOME/.kube/config
  35. sudo chown $(id -u):$(id -g) $HOME/.kube/config

  36. #CNI
  37. kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

  38. #kubectl taint nodes --all node-role.kubernetes.io/master-
  39. # for k8s 1.24 and above
  40. kubectl taint nodes --all node-role.kubernetes.io/control-plane-

  41. kubectl --namespace=kube-system create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
  42. kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.11.1/cert-manager.yaml
  43. sudo openssl dhparam -out dh-param 2048
  44. kubectl create --namespace=kube-system secret generic tls-dhparam --from-file=./dh-param

  45. sudo crictl config --set runtime-endpoint=unix:///run/containerd/containerd.sock
复制代码



# 略去 copy .kube 和 chown

Slave Node:
  1. #Forwarding IPv4 and letting iptables see bridged traffic
  2. cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
  3. overlay
  4. br_netfilter
  5. EOF

  6. sudo modprobe overlay
  7. sudo modprobe br_netfilter

  8. # sysctl params required by setup, params persist across reboots
  9. cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
  10. net.bridge.bridge-nf-call-iptables  = 1
  11. net.bridge.bridge-nf-call-ip6tables = 1
  12. net.ipv4.ip_forward                 = 1
  13. EOF

  14. # Apply sysctl params without reboot
  15. sudo sysctl --system

  16. # verify that the br_netfilter, overlay modules are loaded by running below instruction
  17. lsmod | grep br_netfilter
  18. lsmod | grep overlay



  19. #!/bin/bash

  20. # Synchronize the package index files and install the packages below
  21. sudo apt-get update

  22. sudo DEBIAN_FRONTEND=noninteractive apt-get install -y \
  23.         ca-certificates \
  24.         curl \
  25.         gnupg \
  26.         lsb-release

  27. sudo mkdir -p /etc/apt/keyrings
  28. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  29. echo \
  30.         "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  31.         $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null


  32. sudo apt-get update
  33. sudo DEBIAN_FRONTEND=noninteractive apt-get install -y  containerd.io

  34. # setup containerd
  35. sudo mkdir -p /etc/containerd
  36. containerd config default | sudo tee /etc/containerd/config.toml
  37. sudo sed -i 's/SystemdCgroup\ =\ false/SystemdCgroup\ =\ true/g' /etc/containerd/config.toml
  38. sudo systemctl restart containerd

  39. # install kubernetes
  40. sudo apt-get update
  41. sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
  42. echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

  43. sudo apt-get update
  44. k8sversion=1.27.1-00
  45. echo "sudo apt-get install -y kubelet=$k8sversion kubeadm=$k8sversion kubectl=$k8sversion"
  46. sudo DEBIAN_FRONTEND=noninteractive apt-get install -y kubelet=${k8sversion} kubeadm=${k8sversion} kubectl=${k8sversion}
  47. sudo apt-mark hold kubeadm kubelet kubectl
复制代码


Join cluster
  1. # get join command from master node
  2. sudo kubeadm token create --print-join-command
  3. # transfer ~/.kube  to slave node
  4. scp -r ~/.kube slave:~/
复制代码


# run on slave node
  1. kubeadm join x.x.x.x:6443 --token  xxxxxx --discovery-token-ca-cert-hash sha256:xxxxxx
复制代码

发表于 2023-4-27 13:51 |显示全部楼层
此文章由 间风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 间风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
1. ****Identify the cgroup version on Linux Nodes****

  1. stat -fc %T /sys/fs/cgroup/
复制代码


For cgroup v2, the output is `cgroup2fs`.

For cgroup v1, the output is `tmpfs.`

Note: ubuntu 22.04 is cgroup v2

发表于 2023-4-27 16:04 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
间风 发表于 2023-4-27 13:51
1. ****Identify the cgroup version on Linux Nodes****

[root@node1 kubelet.service.d]# stat -fc %T /sys/fs/cgroup/
tmpfs
[root@node1 kubelet.service.d]#

下一步是啥呢,老大?
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-4-27 16:06 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
间风 发表于 2023-4-27 13:51
1. ****Identify the cgroup version on Linux Nodes****

我的control node 是 redhat 8
node1 是centos 8
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220
Advertisement
Advertisement

发表于 2023-4-27 16:11 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
间风 发表于 2023-4-27 13:51
1. ****Identify the cgroup version on Linux Nodes****

能发一下你的worker node  "systemctl status kubelet" ? 我想看看你的kubelet process是什么

[student@node1 ~]$ systemctl status kubelet
● kubelet.service - kubelet: The Kubernetes Node Agent
   Loaded: loaded (/usr/lib/systemd/system/kubelet.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/kubelet.service.d
           └─10-kubeadm.conf
   Active: activating (auto-restart) (Result: exit-code) since Thu 2023-04-27 16:08:32 AEST; 707ms ago
     Docs: https://kubernetes.io/docs/
  Process: 27838 ExecStart=/usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime=docker --hostname-override=node1 --kubeconfig=/etc/kubernetes/ku>
Main PID: 27838 (code=exited, status=1/FAILURE)

Apr 27 16:08:32 node1 systemd[1]: kubelet.service: Main process exited, code=exited, status=1/FAILURE
Apr 27 16:08:32 node1 systemd[1]: kubelet.service: Failed with result 'exit-code'.
[student@node1 ~]$

我这里试着改文件,改service 文件,hard code ExecStart 都不行,就是--container-runtime=docker 搞不掉,一直在。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-4-27 17:19 |显示全部楼层
此文章由 间风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 间风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
eric_gao 发表于 2023-4-27 16:04
[root@node1 kubelet.service.d]# stat -fc %T /sys/fs/cgroup/
tmpfs
[root@node1 kubelet.service.d]#

https://kubernetes.io/docs/setup ... untimes/#containerd

Configuring the systemd cgroup driver
To use the systemd cgroup driver in /etc/containerd/config.toml with runc, set

  1. [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
  2.   ...
  3.   [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
  4.     SystemdCgroup = true
复制代码

The systemd cgroup driver is recommended if you use cgroup v2.
你的既然不是cgroupv2 那么保持 SystemdCgroup=false

发表于 2023-4-27 19:45 |显示全部楼层
此文章由 间风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 间风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
eric_gao 发表于 2023-4-27 16:11
能发一下你的worker node  "systemctl status kubelet" ? 我想看看你的kubelet process是什么

[student@ ...

Master Node:
  1. ● kubelet.service - kubelet: The Kubernetes Node Agent
  2.      Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  3.     Drop-In: /etc/systemd/system/kubelet.service.d
  4.              └─10-kubeadm.conf
  5.      Active: active (running) since Wed 2023-04-19 21:33:36 UTC; 1 week 0 days ago
  6.        Docs: https://kubernetes.io/docs/home/
  7.    Main PID: 2404 (kubelet)
  8.       Tasks: 25 (limit: 28711)
  9.      Memory: 96.8M
  10.         CPU: 10h 43min 21.709s
  11.      CGroup: /system.slice/kubelet.service
  12.              └─2404 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9
复制代码



Slave Node:
  1. ● kubelet.service - kubelet: The Kubernetes Node Agent
  2.      Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled)
  3.     Drop-In: /etc/systemd/system/kubelet.service.d
  4.              └─10-kubeadm.conf
  5.      Active: active (running) since Thu 2023-04-27 03:21:36 UTC; 6h ago
  6.        Docs: https://kubernetes.io/docs/home/
  7.    Main PID: 4321 (kubelet)
  8.       Tasks: 17 (limit: 28715)
  9.      Memory: 39.3M
  10.         CPU: 5min 16.130s
  11.      CGroup: /system.slice/kubelet.service
  12.              └─4321 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9
复制代码

发表于 2023-4-27 19:47 |显示全部楼层
此文章由 间风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 间风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
  1. cat /var/lib/kubelet/kubeadm-flags.env
复制代码
  1. KUBELET_KUBEADM_ARGS="--container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9"
复制代码

发表于 2023-4-27 19:53 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整

我的kubeadm-flags.env 也是你这样,
[root@node1 kubelet.service.d]# cat /var/lib/kubelet/kubeadm-flags.env
KUBELET_KUBEADM_ARGS="--container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9"
[root@node1 kubelet.service.d]#

还试着hard code service 启动命令,确保哪里也没有--container-runtime=docker,但是kubelet 服务里面就是有这项, 应该是kubeadm join的时候,动态生成的flags,真是见了鬼

[root@node1 kubelet.service.d]# pwd
/usr/lib/systemd/system/kubelet.service.d

[root@node1 kubelet.service.d]# cat 10-kubeadm.conf
# Note: This dropin only works with kubeadm and kubelet v1.11+
[Service]
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
EnvironmentFile=-/etc/sysconfig/kubelet
#ExecStart=
#ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS
ExecStart=/usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock --pod-infra-container-image=registry.k8s.io/pause:3.9
[root@node1 kubelet.service.d]#


Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220
Advertisement
Advertisement

发表于 2023-4-27 19:54 |显示全部楼层
此文章由 飞翔翼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 飞翔翼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
kubernetes cluster用rancher建很方便,我自己的虚拟机上用过rancher后就不想自己手工做了。

发表于 2023-4-27 19:55 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
间风 发表于 2023-4-27 17:19
https://kubernetes.io/docs/setup/production-environment/container-runtimes/#containerd

Configurin ...

问题还没到cgroup,我已经设置了用systemd, 但是这应该只会影响后续deployment的cpu, 内存限制啥的, 我这还没到这里呢。

现在worker node的kubelet,在kubeadm join的时候,初始化失败,得想法把这关过去。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-4-27 19:55 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
飞翔翼 发表于 2023-4-27 19:54
kubernetes cluster用rancher建很方便,我自己的虚拟机上用过rancher后就不想自己手工做了。 ...

rancher是个什么东东,还没用过。 我这是一步一步手工建的。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-4-27 20:00 |显示全部楼层
此文章由 飞翔翼 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 飞翔翼 所有!转贴必须注明作者、出处和本声明,并保持内容完整
eric_gao 发表于 2023-4-27 19:55
rancher是个什么东东,还没用过。 我这是一步一步手工建的。

K8S管理器呀,你放狗搜一下就知道了。

发表于 2023-4-27 20:25 |显示全部楼层
此文章由 间风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 间风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
eric_gao 发表于 2023-4-27 19:55
问题还没到cgroup,我已经设置了用systemd, 但是这应该只会影响后续deployment的cpu, 内存限制啥的,  ...

检查下
  1. kubectl edit node
复制代码


kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/containerd/containerd.sock
Advertisement
Advertisement

发表于 2023-4-27 20:47 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整

apiVersion: v1
kind: Node
metadata:
  annotations:
    flannel.alpha.coreos.com/backend-data: '{"VNI":1,"VtepMAC":"ea:dd:9d:a2:d7:74"}'
    flannel.alpha.coreos.com/backend-type: vxlan
    flannel.alpha.coreos.com/kube-subnet-manager: "true"
    flannel.alpha.coreos.com/public-ip: 192.168.1.223
    kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/containerd/containerd.sock
    node.alpha.kubernetes.io/ttl: "0"
    volumes.kubernetes.io/controller-managed-attach-detach: "true"
  creationTimestamp: "2023-04-25T11:40:18Z"
  labels:
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-4-28 23:10 |显示全部楼层
此文章由 间风 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 间风 所有!转贴必须注明作者、出处和本声明,并保持内容完整
本帖最后由 间风 于 2023-4-28 23:14 编辑

@eric_gao
搭了一个跟你一样的环境,master node: rhel 8.7 slave node: centos 8

both disable selinux, firewalld, swap

全部执行以下命令
  1. cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
  2. overlay
  3. br_netfilter
  4. EOF

  5. sudo modprobe overlay
  6. sudo modprobe br_netfilter

  7. # sysctl params required by setup, params persist across reboots
  8. cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
  9. net.bridge.bridge-nf-call-iptables  = 1
  10. net.bridge.bridge-nf-call-ip6tables = 1
  11. net.ipv4.ip_forward                 = 1
  12. EOF

  13. # Apply sysctl params without reboot
  14. sudo sysctl --system

  15. # verify that the br_netfilter, overlay modules are loaded by running below instruction
  16. lsmod | grep br_netfilter
  17. lsmod | grep overlay
复制代码


master node:
手动安装containerd, runc, crictl

  1. # Installing containerd
  2. containerd_version=1.6.20
  3. wget https://github.com/containerd/containerd/releases/download/v$containerd_version/containerd-$containerd_version-linux-amd64.tar.gz
  4. # extract to /usr/local/bin
  5. sudo tar Cxzvf /usr/local containerd-$containerd_version-linux-amd64.tar.gz
  6. rm containerd-$containerd_version-linux-amd64.tar.gz
  7. # service
  8. wget https://raw.githubusercontent.com/containerd/containerd/main/containerd.service
  9. sudo mv containerd.service /etc/systemd/system/containerd.service
  10. # create config.toml
  11. sudo mkdir -p /etc/containerd/
  12. containerd config default|sudo tee /etc/containerd/config.toml

  13. # start containerd
  14. sudo systemctl daemon-reload
  15. sudo systemctl enable --now containerd

  16. # Installing runc
  17. runc_version=v1.1.5
  18. wget https://github.com/opencontainers/runc/releases/download/$runc_version/runc.amd64
  19. sudo install -m 755 runc.amd64 /usr/local/sbin/runc
  20. rm runc.amd64

  21. # Installing CNI
  22. cni_version=v1.2.0
  23. wget https://github.com/containernetworking/plugins/releases/download/$cni_version/cni-plugins-linux-amd64-$cni_version.tgz
  24. sudo mkdir -p /opt/cni/bin
  25. sudo tar Cxzvf /opt/cni/bin cni-plugins-linux-amd64-$cni_version.tgz
  26. rm cni-plugins-linux-amd64-$cni_version.tgz

  27. # crictl endpoint
  28. VERSION="v1.26.1"
  29. wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
  30. sudo tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
  31. rm -f crictl-$VERSION-linux-amd64.tar.gz
  32. crictl config --set runtime-endpoint=unix:///run/containerd/containerd.sock
复制代码


Install K8S
https://kubernetes.io/docs/setup ... dm/install-kubeadm/

  1. cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
  2. [kubernetes]
  3. name=Kubernetes
  4. baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch
  5. enabled=1
  6. gpgcheck=1
  7. gpgkey=https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
  8. exclude=kubelet kubeadm kubectl
  9. EOF


  10. sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

  11. sudo systemctl enable --now kubelet
复制代码


初始化
  1. sudo kubeadm init --pod-network-cidr=10.244.0.0/16
  2. mkdir -p $HOME/.kube
  3. sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  4. sudo chown $(id -u):$(id -g) $HOME/.kube/config

  5. # deploy network
  6. kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

  7. # taint control panel node
  8. kubectl taint nodes --all node-role.kubernetes.io/control-plane-
复制代码



Slave Node:
重复 手动安装containerd, runc, crictl 部分
重复 Install K8S 部分
安装 tc for k8s join pre check on slave node
  1. dnf install -y iproute-tc
复制代码


scp ~/.kube from master node to slave node
run
  1. kube join
复制代码
from slave node


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

发表于 2023-4-29 17:15 |显示全部楼层
此文章由 eric_gao 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 eric_gao 所有!转贴必须注明作者、出处和本声明,并保持内容完整
间风 发表于 2023-4-28 23:10
@eric_gao
搭了一个跟你一样的环境,master node: rhel 8.7 slave node: centos 8

谢谢了, 又手工装了一遍runtime和k8s, join的时候,还是如此 --container-runtime=docker 一直在。 放弃了。

今天下午又临时装了个ubuntu,这个作为workder node加入,一点问题都没有。

[student@control ~]$ kubectl get nodes
NAME      STATUS   ROLES           AGE     VERSION
control   Ready    control-plane   3d19h   v1.27.1
node5     Ready    <none>          44s     v1.27.1
[student@control ~]$
[student@control ~]$


这下方便了,做了个虚拟机备份, 有个k8s在手,接下来玩一玩api gateway, service mesh,方便多了。
Sunday Afternoons UPF50+防晒帽专卖
oursteps.com.au/bbs/forum.php?mod=viewthread&tid=934220

发表于 2023-5-1 00:05 |显示全部楼层
此文章由 ypqfyf 原创或转贴,不代表本站立场和观点,版权归 oursteps.com.au 和作者 ypqfyf 所有!转贴必须注明作者、出处和本声明,并保持内容完整
虽然但是,我觉得kind也挺方便的,也可以多节点,想玩啥都可以

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Advertisement
Advertisement
返回顶部