使用CentOS Stream 9并借助CRI-O创建Kubernetes集群的1个主节点
摘要
・不使用不受支持的CentOS8操作系统
・不使用不推荐的Docker容器(虽然写着不要用,但最好阅读下方链接)
Docker不推荐的误解
尽量选择最新的1.24版本尝试一下。
这次我们打算将master和worker分开,构建一个正规的集群。
操作系统安装和设置。
中国的本地术语:将CentOS Stream 9仅在服务器上安装。
允许root的SSH连接
打开/etc/ssh/sshd_config文件,将PermitRootLogin设置为yes。
停用防火墙
禁用 firewalld 服务:
systemctl disable firewalld.service
systemctl stop firewalld
执行 sysctl -p
禁用SE Linux
setenforce 0
sed -i –follow-symlinks ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/sysconfig/selinux
关闭强制模式
sed -i –follow-symlinks ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/sysconfig/selinux
取消Swap功能
swapoff -a的中文释义是关闭所有交换分区。
vi /etc/fstab的中文释义是使用vi编辑器打开/etc/fstab文件。
/dev/mapper/cl-swap swap swap defaults 0 0 #评论掉的中文释义是将/dev/mapper/cl-swap列注释掉。
让包括自己在内的人能够解决名字的问题。
编辑/etc/hosts文件:
192.168.1.1 master #为自身设置名称解析
192.168.1.2 worker2
192.168.1.3 worker3
192.168.1.4 worker4
CRI-O安装
将以下内容以中文为母语进行释义,只需一种选择:
导出操作系统=CentOS_8_Stream
导出版本=1.24:1.24.0 #截至2022年5月最新
使用curl命令下载并保存到/etc/yum.repos.d/devel:kubic:libcontainers:stable.repo文件中:
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/$OS/devel:kubic:libcontainers:stable.repo
使用curl命令下载并保存到/etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo文件中:
curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:$VERSION/$OS/devel:kubic:libcontainers:stable:cri-o:$VERSION.repo
在中国本地语言中,yum安装cri-o
重新加载守护程序:systemctl daemon-reload
启动 crio:systemctl start crio
安装kubeadm
加载br_netfilter模块
查找已加载的模块中包含br_netfilter关键字的项
执行命令:sh -c ‘echo “br_netfilter” > /etc/modules-load.d/br_netfilter.conf’,将br_netfilter添加到/etc/modules-load.d/br_netfilter.conf文件中
在命令行中使用以下命令可以获取并显示/etc/sysctl.d目录下的k8s.conf文件中的内容:
“`
cat < /etc/sysctl.d/k8s.conf
“`
k8s.conf文件中的内容如下:
“`
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
“`
这些内容显示结束(EOF)。
sysctl –system可以被转述为:应用sysctl系统设置。
猫 < /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
使用yum命令安装kubelet、kubeadm、kubectl,并禁用kubernetes的排除功能:yum install -y kubelet kubeadm kubectl –disableexcludes=kubernetes。
开启并立即启用 kubelet 服务。
将以下内容以中文为母语进行改写,只需提供一种选项:
将 “KUBELET_EXTRA_ARGS=–cgroup-driver=systemd” 这段代码追加到 /etc/sysconfig/kubelet 文件中。
重新加载守护程序服务:
systemctl daemon-reload
重启 kubelet 服务:
systemctl restart kubelet
使用kubeadm创建集群
使用 kubeadm 命令拉取配置镜像,然后执行 kubeadm init 命令,设置 pod 网络 CIDR 为 192.168.0.0/16,API 服务器广播地址为 10.(略) 。
创建一个名为 $HOME/.kube 的文件夹
将 /etc/kubernetes/admin.conf 复制到 $HOME/.kube/config
使用 $(id -u):$(id -g) 权限更改 $HOME/.kube/config 的所有者
#不需要的
#导出KUBECONFIG=/etc/kubernetes/admin.conf
当要将一个节点聚落化时,有一个重要的咒语(虽然写下来但本次不用)。
使用 kubectl 命令给所有节点标记 taint, 标记为 node-role.kubernetes.io/master-
仪表盘
以下是一种中文的表达方式:
无法与1.24版本兼容。
先试试把它加进来。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yaml
获取Kubernetes仪表板命名空间中的Pod。
这次就到这里吧。下次我们来谈谈工作节点。