环境
rocky8.8 + docker
1. k8s + calico 安装
官网:在 Linux 上以 All-in-One 模式安装 KubeSphere
前置工作
安装socat,conntrack,关闭防火墙,关闭swap,关闭selinux。(云端、edge端均需要)
安装docker参考之前使用 KubeKey 从0搭建 k8s+ kubeovn 三节点标准集群 - Lixx Blog - 李晓旭的博客配置镜像加速
# 安装 socat,conntrack
dnf install socat
dnf install conntrack
# 关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
# 关闭swap
# 查看当前状态
free -m
# 临时关闭swap
swapoff -a
# 临时关闭后临时开启
swapon -a
# 永久关闭
vim /etc/fstab 把加载swap分区的那行记录注释掉即可
reboot
# 关闭selinux
# 查看状态 三个方法都可以
1. cat /etc/selinux/config
SELinux共有3个状态enforcing (执行中)、permissive (不执行但产生警告)、disabled(关闭)
2. getenforce
3. /usr/sbin/sestatus -v
# 临时关闭
#setenforce 0设置为permissive模式;setenforce 1 设置为enforcing模式; setenforce 0
setenforce 0
# 永久关闭
1. 手动 vim /etc/selinux/config enforcing 改为 disabled
2. sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config
安装k8s集群
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -
chmod +x kk
#单节点安装
./kk create cluster
2. openyurt安装
主节点
官网参考:在Kubernetes上安装 | OpenYurt
GitHub - openyurtio/openyurt-helm: OpenYurt components helm charts网络不好可以收到下载helm文件手动安装
# docker为容器运行时(CRI)
iptables -w -P FORWARD ACCEPT
sed -i 's#^After=network-online.target firewalld.service$#After=network-online.target firewalld.service containerd.service#g' \
/lib/systemd/system/docker.service
# 1 添加仓库 ,网络不好可以
helm repo add openyurt https://openyurtio.github.io/openyurt-helm
helm search repo openyurt
# 2 安装 yurt-manager
helm upgrade --install yurt-manager -n kube-system openyurt/yurt-manager
kubectl get pod -n kube-system | grep yurt-manager
kubectl get svc -n kube-system | grep yurt-manager
# 3 安装 yurthub 相关配置,以 Kubernetes 服务器地址`https://1.2.3.4:6443`为例,`kubectl config view`来查找
# 注意:建议环境统一用域名(hostname),当云端为公网ip时,edge端需配置hosts文件。本地可以用ip,但尽量不使用。
helm upgrade --install yurt-hub -n kube-system --set kubernetesServerAddr=https://1.2.3.4:6443 openyurt/yurthub
kubectl get yss -n kube-system
# 4 安装跨网络域通信组件 Raven,遇到镜像拉不下来,手动edit daemonset.apps/raven-agent-ds, 版本修改为main——image: openyurt/raven-agent:main
helm upgrade --install raven-agent -n kube-system openyurt/raven-agent
kubectl get pod -n kube-system | grep raven-agent
# 注,如果网络不好,手动去openyurt helm github官网下载对应文件,然后解压进入对应目录。命令对应如下,去除openyurt/yurthub。
helm upgrade --install yurt-hub -n kube-system --set kubernetesServerAddr=https://192.168.137.215:6443 openyurt/yurthub
helm upgrade --install yurt-hub -n kube-system --set kubernetesServerAddr=https://192.168.137.215:6443 . # 本地执行
edge节点
当云端节点为公网地址时,edge端必须配置hosts文件,避免yurthub启动失败。
# 添加 "exec-opts": ["native.cgroupdriver=systemd"]
[root@rocky8-edge ~]# cat /etc/docker/daemon.json
{
"registry-mirrors": ["https://ymjcp0nc.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"]
}
节点接入:节点接入 | OpenYurt
# yurtadm join 执行以下命令加入边缘节点,ip为master节点ip
_output/local/bin/linux/amd64/yurtadm join 192.168.137.215:6443 --token=5w5cf2.9p6mqni57x7132vt --node-type=edge --discovery-token-unsafe-skip-ca-verification --v=5
# token获取,在主节点执行,查看是否有可用token,没有进行创建
kubeadm token list
kubeadm token create
手动编译yurtadm:本地构建和测试 | OpenYurt,或者下载官方二进制文件:Releases · openyurtio/openyurt · GitHub
# 1. go环境安装
dnf install go
# 2.go 镜像源配置,启用 Go Modules 功能
go env -w GO111MODULE=on
# 配置 GOPROXY 环境变量,七牛 CDN
go env -w GOPROXY=https://goproxy.cn,direct
go env | grep GOPROXY
GOPROXY="https://goproxy.cn"
# 2. 下载代码https://github.com/openyurtio/openyurt, 注意要用linux环境下载,win下载编译会报错
# 该命令会根据本机的操作系统和架构编译yurtadm,并把编译出来的可执行二进制文件放在_output目录下
make build WHAT=cmd/yurtadm
参考:
- Go 国内加速:Go 国内加速镜像 | Go 技术论坛 (learnku.com)
- go mod tidy报错:zip: not a valid zip file-CSDN博客
- kubeadm token | Kubernetes
- kubelet启动失败问题_execstart=/usr/bin/kubelet $kubelet_kubeconfig_arg-CSDN博客
- 一个非常好用的网卡配置命令---nmcli命令详解-CSDN博客
- linux(centos8): 临时关闭/永久关闭交换分区swap? - 刘宏缔的架构森林 - 博客园 (cnblogs.com)
- calico-node报错Readiness probe failed: calico/node is not ready: BIRD is not ready_calico/node is not ready: bird is not ready: bgp n-CSDN博客
- kubernetes - calico/node is not ready: BIRD is not ready: BGP not established - Stack Overflow
评论