Deploy Kubernetes on Fedora CoreOS(FCOS)
- VirtualBox(6.x)或其他虚拟机的使用方法
- systemd
- Docker
- Kubernetes
- 虚拟机内存必须设置为
3072M (3G)
以上,否则将无法启动 - 若使用虚拟机安装,建议电脑内存 16G 硬盘 100G 可用空间
SELinux
已关闭kubelet
容器运行时为containerd
Etcd
kube-nginx
等部分服务运行方式为podman
- bug: 硬盘空间充足,但报硬盘空间不足错误,解决办法: ignition
storage.files.path
不要列出大文件 - bug: 异常关机(强制关机)可能导致
podman
运行出错,请删除镜像(例如:$ sudo podman rmi IMAGE_NAME)
之后重启服务(例如:$ sudo systemctl restart etcd)
VirtualBox 增加 hostonly 网络 192.168.57.1 网段(vboxnet1 网卡),并启用 DHCP:
# 首次使用执行两次,保证存在 vboxnet1(在 VirtualBox -> 管理 -> 主机网络管理器 查看)
$ VBoxManage hostonlyif create
$ VBoxManage hostonlyif ipconfig vboxnet1 --ip 192.168.57.1 --netmask 255.255.255.0 --dhcp
# download coreos iso files
$ ./coreos init
如果下载缓慢可以替换 hosts
,具体参考 khs1994-docker/lnmp
的 config/etc/hosts
$ cd ..
# ~/lnmp/kubernetes
# download kubernetes server files
$ ./lnmp-k8s kubernetes-server
# $ ./lnmp-k8s kubernetes-server --url
# download soft
# $ items="etcd cni crictl containerd"
$ items="crictl containerd"
$ for item in $items;do ./lnmp-k8s _${item}_install --dry-run;done
自行调整配置
本项目默认支持 3 节点,如果你要增加节点,请进行如下操作
n
为节点数,必须大于 3
$ ./coreos add-node {n} [TYPE:master | node] # n > 3
$ docker pull khs1994/fcos
$ ./coreos server
# create VirtualBox vm
# 安装第一个节点 N 为 1,以此类推
# [local] 若为单节点则 N 为 1
$ ./coreos new-vm N
# 启动虚拟机,在终端执行以下命令
# 节点 1 设置 NODE_NAME 为 1,以此类推
# [local] 若为单节点则为 local
$ curl 192.168.57.1:8080/bin/coreos.sh | NODE_NAME=1 bash
# 关机
$ poweroff
# 在虚拟机设置页面移除 ISO
# 存储 -> 存储介质 -> 选住 ISO -> 属性 -> 移除虚拟盘 点击确定
# 或者执行
$ ./coreos umount-iso N
# $ ./coreos mount-iso N
# 重新启动(可能会遇到异常,只要不是 ignition 错误,强制重启即可)
三节点全部启动之后,集群才能正常运行!
192.168.57.110
192.168.57.111
192.168.57.112
修改 .kube 权限
$ sudo chown -R core:core ~/.kube
$ kubectl get csr
$ kubectl certificate approve csr-xxxxx
部署 CNI -- calico
$ kubectl apply -f /home/core/calico.yaml
部署 CoreDNS
# 项目目录 kubernetes 目录下执行
$ kubectl kustomize addons/coredns/cn > addons/coredns/cn/coredns.yaml
# 虚拟机终端执行
$ kubectl apply -f http://192.168.57.1:8080/addons/coredns/cn/coredns.yaml
虚拟机网卡设置
网卡 | 模式 | IP |
---|---|---|
网卡1 | host-only (静态IP) |
192.168.57.* |
网卡2 | 桥接 (DHCP ) |
192.168.199.* (根据实际配置) |
添加默认路由
有时可能连接不到网络,请添加路由(192.168.199.1
为桥接网络的网关地址)。
$ sudo route add default gw 192.168.199.1
- 生成 Docker Daemon 远程连接自签名证书文件
- https://github.com/coreos/coreos-kubernetes
- https://github.com/opsnull/follow-me-install-kubernetes-cluster
- https://github.com/Mengkzhaoyun/ansible
- https://github.com/coreos/butane/blob/main/docs/config-fcos-v1_1.md
- https://www.cnblogs.com/mengkzhaoyun/p/7599695.html
- https://github.com/cloudflare/cfssl
- https://docs.fedoraproject.org/en-US/fedora-coreos/getting-started/
- https://github.com/coreos/coreos-installer/