注意:前面有一篇二进制安装kubernetes 1.23.2 的文章,这里的内容和那篇里用的参数大部分是一样的,但是scheduler和kubelet的参数有所不同。
点击阅读二进制安装kubernetes 1.23.2 实验环境两台机器,vms71和vms72
系统:centos7.4
vms71为master,vms72是worker 1.基本设置1.安装基本设置所有节点设置好/etc/hosts,使它们之间能互相解析。 [root@vms7X ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.26.71 vms71.rhce.cc vms71
192.168.26.72 vms72.rhce.cc vms72
[root@vms7X ~]# 在所有节点上关闭swap分区。 [root@vms7X ~]# swapoff -a ; sed -i '/fstab/d' /etc/fstab
[root@vms7X ~]# 在所有节点上更新yum源。 [root@vms7X ~]# rm -rf /etc/yum.repos.d/* ; wget ftp://ftp.rhce.cc/k8s/* -P /etc/yum.repos.d/
[root@vms7X ~]# yum clean all
[root@vms7X ~]#
2.安装containerd[color=rgba(0, 0, 0, 0.8)]在所有机器上安装containerd [root@vms7X ~]# yum install containerd.io cri-tools -y
[root@vms7X ~]# crictl config runtime-endpoint unix:///var/run/containerd/containerd.sock先生成配置文件/etc/containerd/config.toml。 [root@vms71 ~]# containerd config default > /etc/containerd/config.toml使用vim编辑器打开/etc/containerd/config.toml。
第一:搜索mirrors,把 [plugins."io.containerd.grpc.v1.cri".registry.mirrors][color=rgba(0, 0, 0, 0.8)]改成 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://frz7i079.mirror.aliyuncs.com"]第二:搜索sandbox,把 sandbox_image = "k8s.gcr.io/pause:3.6"改成
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"第三:搜索SystemdCgroup,把 [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
BinaryName = ""
CriuImagePath = ""
CriuPath = ""
CriuWorkPath = ""
IoGid = 0
IoUid = 0
NoNewKeyring = false
NoPivotRoot = false
Root = ""
ShimCgroup = ""
SystemdCgroup = false改成(这里是删除了多余的行,并非是省略没写) [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
SystemdCgroup = true
同步到vms72 [root@vms71 ~]# scp /etc/containerd/config.toml vms72:/etc/containerd/
root@vms72's password: config.toml 100% 7155 9.3MB/s 00:00
[root@vms71 ~]#在所有节点重启containerd,并设置开机自动启动。 systemctl enable containerd ; systemctl restart containerd
3.加载模块及修改参数在所有节点上加载模块 [root@vms7X ~]# modprobe overlay ; modprobe br_netfilter在所有机器上执行下面的命令,目的是系统重启时模块能自动加载。 cat > /etc/modules-load.d/containerd.conf <<EOFoverlaybr_netfilterEOF
在所有机器上执行下面的命令,目的是实现重启系统后,参数也能继续生效。 cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1EOF
让上述参数立即生效。 [root@vms7X ~]# sysctl -p /etc/sysctl.d/k8s.conf
[root@vms7X ~]#
4.安装nerdctl到下面的连接下载最新版的nerdctl,本实验时最新版是0.20.0版本的。
https://github.com/containerd/nerdctl/releases
先在vms71上做,然后同步到vms72即可。 [root@vms71 ~]# tar zxf nerdctl-0.20.0-linux-amd64.tar.gz -C /usr/bin/ nerdctl
[root@vms71 ~]# scp /usr/bin/nerdctl vms72:/usr/bin/
root@vms72's password:
nerdctl 100% 25MB 88.5MB/s 00:00
[root@vms71 ~]#
到下面的地址下载nerdctl所需要的cni插件
https://github.com/containernetworking/plugins/releases 先在vms71上做,然后同步到vms72即可。 [root@vms71 ~]# mkdir -p /opt/cni/bin/
[root@vms71 ~]# tar zxf cni-plugins-linux-amd64-v1.1.1.tgz -C /opt/cni/bin/
[root@vms71 ~]# scp -r /opt/cni/ vms72:/opt/修改/etc/profile,在第二行添加如下两行内容 [root@vms71 ~]# head -3 /etc/profile
# /etc/profile
source <(nerdctl completion bash)
export CONTAINERD_NAMESPACE=k8s.io
[root@vms71 ~]#
让设置生效 [root@vms71 ~]# source /etc/profile
[root@vms71 ~]#
5.安装cfssl工具自行下载最新版的cfssl工具放在/usr/local/bin里。 [root@vms71 ~]# cd /usr/local/bin/
[root@vms71 bin]# ls
cfssl-certinfo_linux-amd64 cfssljson_linux-amd64 cfssl_linux-amd64
[root@vms71 bin]#
[root@vms71 bin]#
[root@vms71 bin]# for i in * ; do n=${i%_*} ; mv $i $n; done ; chmod +x *
[root@vms71 bin]#
[root@vms71 bin]# lscfssl cfssl-certinfo cfssljson
[root@vms71 bin]# cd
[root@vms71 ~]#
2.配置k8s各组件所需要的证书在kubernetes里涉及到很多TLS认证,所以需要做大量的证书,这里先归纳一下。
因为编辑有些麻烦,点击此处阅读原文
|