安装部署

minikube

使用Ubuntu 20.04

安装docker

apt install -y docker.io

安装cri-dockerd

wget https://storage.googleapis.com/golang/getgo/installer_linux
chmod +x ./installer_linux
./installer_linux
source ~/.bash_profile
git clone https://github.com/Mirantis/cri-dockerd.git
cd cri-dockerd
mkdir bin
go build -o bin/cri-dockerd
mkdir -p /usr/local/bin
install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd
cp -a packaging/systemd/* /etc/systemd/system
sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service
systemctl daemon-reload
systemctl enable cri-docker.service
systemctl enable --now cri-docker.socket

修改/etc/systemd/system/cri-docker.socket服务,将docker变成root

创建软连接

然后重启服务服务

查看这两个服务是否正常

安装crictl

安装kubectl

安装Minikube

运行

查看可支持的版本

启动集群

查看pods

启动metrics

启动仪表盘

配置对外端口

访问URL

image-20230109225621851

kubernetes集群安装

架构

三台使用Ubuntu 20.04。

机器
IP地址

master

192.168.32.10

node-1

192.168.32.20

node-2

192.168.32.30

安装cri-dockerd

三台都要装

注意: Docker 引擎不实现CRI ,这是容器运行时与 Kubernetes 一起工作的要求。因此, 必须安装额外的服务cri-dockerd 。cri-dockerd 是一个基于遗留内置 Docker 引擎支持的项目,该支持已在 1.24 版中从 kubelet 中删除。

安装go语言

安装cri-docker

修改/etc/systemd/system/cri-docker.socket SocketGroup组为root

重新读取配置文件,设置开机启动以及立刻运行服务。

安装 kubeadm、kubelet 和 kubectl

您将在所有机器上安装这些软件包:

  • kubeadm:引导集群的命令。

  • kubelet:在集群中的所有机器上运行并执行诸如启动 pod 和容器之类的组件。

  • kubectl:用于与您的集群对话的命令行实用程序。

切换到国内源

将 SELinux 设置为 permissive 模式(相当于将其禁用)

通过运行命令 setenforce 0sed ... 将 SELinux 设置为 permissive 模式可以有效地将其禁用。 这是允许容器访问主机文件系统所必需的,而这些操作是为了例如 Pod 网络工作正常。

关闭swap分区

关闭防火墙

查看支持的版本

部署集群

kubeadm init 是一个用于初始化 Kubernetes 集群的命令。当你运行 kubeadm init 时,它会在你运行该命令的节点上创建一个新的集群。

你可以使用 --cri-socket 参数来指定要使用的容器运行时接口 (CRI) 的套接字。CRI 是 Kubernetes 与容器运行时(例如 Docker 或 containerd)进行通信的接口。

你也可以使用 --control-plane-endpoint 参数来指定集群的控制平面端点的 IP 地址和端口。控制平面是集群的中枢,负责管理集群的状态并在节点上调度工作负载。

master节点初始化

复制凭据

重置

这时候coredns是还没有启动

下载配置文件

修改kube-flannel.yml中的Network的值,要与初始化时的参数--pod-network-cidr的值一致

image-20230203145303281

运行flannel

默认情况下,出于安全原因,您的集群不会在控制平面节点上调度 Pod。如果您希望能够在控制平面节点上调度 Pod,例如对于单机 Kubernetes 集群,请运行:

两个node节点加入到master节点

如果出现[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1

image-20230203165654424

查看节点状态

image-20230203165831375

由于集群节点通常是按顺序初始化的,CoreDNS Pod 很可能都运行在第一个控制面节点上。 为了提供更高的可用性,请在加入至少一个新节点后 使用 kubectl -n kube-system rollout restart deployment coredns 命令,重新平衡这些 CoreDNS Pod。

最后更新于

这有帮助吗?