初始化一个使用ipvs及systemd的单机集群

基础环境安装

主目录地址


初始化一个使用ipvs的集群

安装所需模块

使用ipvs之前,需要确保主机开启了如下模块.

ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4

安装

yum install ipvsadm ipset -y

加载模块

# load module <module_name>
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
# linux 内核4.19上面的命令会报错 使用如下命令
modprobe -- nf_conntrack 

# to check loaded modules, use
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
# or
cut -f1 -d " "  /proc/modules | grep -e ip_vs -e nf_conntrack_ipv4

导出配置

# 主节点声明变量
export KUBE_PROXY_MODE=ipvs
# 导出配置
kubeadm config print init-defaults >Kubernetes-cluster.yaml

打开

vim Kubernetes-cluster.yaml
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  # 将此处IP地址替换为主节点IP ETCD容器会试图通过此地址绑定端口 如果主机不存在则会失败
  advertiseAddress: 20.88.9.31
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  imagePullPolicy: IfNotPresent
  name: node
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
# 修改镜像下载地址
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: 1.23.0
networking:
  dnsDomain: cluster.local
  # 增加配置 指定pod网段
  podSubnet: "10.244.0.0/16"
  serviceSubnet: 10.96.0.0/12
scheduler: {}
# 增加
pod-network-cidr: '10.244.0.0/16'
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
#featureGates:
  #SupportIPVSProxyMode: false
mode: ipvs
---
# 使用systemd
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
cgroupDriver: systemd
kubeadm init --config Kubernetes-cluster.yaml

查看kube-proxy的日志:

执行命令查看日志

for i in `kubectl get pod -n kube-system|egrep "^kube-proxy"|awk '{print $1}'`;do kubectl logs $i -n kube-system |grep "ipvs";done

执行结果:

[root@localhost ~]# kubectl logs kube-proxy-c87t5 -n kube-system|grep "ipvs"
I0317 13:45:41.368299       1 server_others.go:269] "Using ipvs Proxier"
I0317 13:45:41.368326       1 server_others.go:271] "Creating dualStackProxier for ipvs"
[root@localhost ~]# 

日志中输出打印了Using ipvs Proxier表示使用了ipvs网络.


参考文献:

Kubernetes IPVS

kubeadm init

其他操作

如果该节点想要重新初始化,那么可执行命令将其从集群中剔除:

kubeadm reset
# 删除缓存的配置
rm -rf $HOME/.kube/config

默认情况下,Kuebrnetes会使用当前节点的主机名作为改worker节点的名称,如果想要修改,可以再添加节点的时候添加参数--node-name,示例:

kubeadm join 20.88.9.31:6443 --token abcdef.0123456789abcdef --discovery-token-ca-cert-hash  sha256:fe149e4c8fe72d80d5284fcbe7824d0863bc361057946b7489a9d83a75d5282e --node-name workernode1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值