使用Kubeadm在外部OpenStack云厂商部署Kubernetes集群

2023年 7月 9日 29.8k 0

本文档描述了如何在CentOS上使用kubeadm安装单个控制面板节点(主节点)的Kubernetes集群( v1.15 ),然后部署到一个外部OpenStack云厂商,并且使用Cinder CSI插件将Cinder存储卷用作Kubernetes中的持久卷。

OpenStack的准备工作

Kubernetes集群要在OpenStack VM上运行,因此让我们首先需要在OpenStack中创建一些东西。

  • Kubernetes集群的项目/租户
  • Kubernetes集群项目的用户,以查询节点信息和附加存储卷等
  • 专用网络和子网
  • 专用网络的路由器,并将其连接到公用网络以获取浮动IP
  • 所有Kubernetes 虚拟机的安全组
  • 一个虚拟机作为控制面板节点(主节点),几个虚拟机作为工作节点

安全组将具有以下规则来打开Kubernetes的端口。

控制面板节点(主节点)

协议 端口号 描述
TCP协议 6443 Kubernetes API Server
TCP协议 2379-2380 etcd server client API
TCP协议 10250 Kubelet API
TCP协议 10251 kube-scheduler
TCP协议 10252 kube-controller-manager
TCP协议 10255 只读 Kubelet API

工作节点

协议 端口号 描述
TCP协议 10250 Kubelet API
TCP协议 10255 Read-only Kubelet API
TCP协议 30000-32767 NodePort Services

控制面板节点(主节点)和工作节点上的CNI端口

协议 端口号 描述
TCP协议 179 Calico BGP network
TCP协议 9099 Calico felix(健康检查)
UDP协议 8285 Flannel
UDP协议 8472 Flannel
TCP协议 6781-6784 Weave Net
UDP协议 6783-6784 Weave Net

仅在使用特定的CNI插件时才需要打开CNI特定的端口。在本指南中,我们将使用Weave Net。在安全组中仅需要打开Weave Net端口(TCP 6781-6784和UDP 6783-6784)。

控制面板节点(主节点)至少需要2个内核和4GB RAM。启动虚拟机后,请验证其主机名,并确保其与Nova中的节点名相同。如果主机名不可解析,请将其添加到中/etc/hosts。

例如,如果虚拟机名为master1,并且它的内部IP是192.168.1.4。将其添加到/etc/hosts并将主机名设置为master1。

echo "192.168.1.4 master1" >> /etc/hosts
​
hostnamectl set-hostname master1

安装Docker和Kubernetes

接下来,我们将按照官方文档使用kubeadm安装docker和Kubernetes。

按照容器运行时文档中的步骤安装Docker 。

请注意,最佳做法是将systemd用作Kubernetes 的cgroup驱动程序。如果你使用内部容器注册表,请将其添加到docker 配置中。

# Install Docker CE
## Set up the repository
### Install required packages.

yum install yum-utils device-mapper-persistent-data lvm2

### Add Docker repository.

yum-config-manager \
 --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

## Install Docker CE.

yum update && yum install docker-ce-18.06.2.ce

## Create /etc/docker directory.

mkdir /etc/docker

# Configure the Docker daemon

cat > /etc/docker/daemon.json

相关文章

KubeSphere 部署向量数据库 Milvus 实战指南
探索 Kubernetes 持久化存储之 Longhorn 初窥门径
征服 Docker 镜像访问限制!KubeSphere v3.4.1 成功部署全攻略
那些年在 Terraform 上吃到的糖和踩过的坑
无需 Kubernetes 测试 Kubernetes 网络实现
Kubernetes v1.31 中的移除和主要变更

发布评论