> 文章列表 > 【社区图书馆】k8s

【社区图书馆】k8s

【社区图书馆】k8s

一、前言

二、基础环境部署

  • 1)前期准备(所有节点

  • 2)安装容器 docker(所有节点)

  • 3)配置 k8s yum 源(所有节点)

  • 4)将 sandbox_image 镜像源设置为阿里云 google_containers 镜像源(所有节点)

  • 5)配置 containerd cgroup 驱动程序 systemd(所有节点)

  • 6)开始安装 kubeadm,kubelet 和 kubectl(master 节点)

  • 7)使用 kubeadm 初始化集群(master 节点)

  • 8)安装 Pod 网络插件(CNI:Container Network Interface)(master)

  • 9)node 节点加入 k8s 集群

  • 10)配置 IPVS

  • 11)集群高可用配置

  • 12)部署 Nginx+Keepalived 高可用负载均衡器

三、k8s 管理平台 dashboard 环境部署

  • 1)dashboard 部署

  • 2)创建登录用户

  • 3)配置 hosts 登录 dashboard web

四、k8s 镜像仓库 harbor 环境部署

  • 1)安装 helm

  • 2)配置 hosts

  • 3)创建 stl 证书

  • 4)安装 ingress

  • 5)安装 nfs

  • 6)创建 nfs provisioner 和持久化存储 SC

  • 7)部署 Harbor(Https 方式)

一、前言

官网:https://kubernetes.io/
官方文档:https://kubernetes.io/zh-cn/docs/home/

二、基础环境部署

1)前期准备(所有节点)

1、修改主机名和配置 hosts

先部署 1master 和 2node 节点,后面再加一个 master 节点

# 在192.168.0.113执行
hostnamectl set-hostname  k8s-master-168-0-113
# 在192.168.0.114执行
hostnamectl set-hostname k8s-node1-168-0-114
# 在192.168.0.115执行
hostnamectl set-hostname k8s-node2-168-0-115

配置 hosts

cat >> /etc/hosts<<EOF
192.168.0.113 k8s-master-168-0-113
192.168.0.114 k8s-node1-168-0-114
192.168.0.115 k8s-node2-168-0-115
EOF

2、配置 ssh 互信

# 直接一直回车就行
ssh-keygenssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-master-168-0-113
ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-node1-168-0-114
ssh-copy-id -i ~/.ssh/id_rsa.pub root@k8s-node2-168-0-115

3、时间同步

yum install chrony -y
systemctl start chronyd
systemctl enable chronyd
chronyc sources

4、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

5、关闭 swap

# 临时关闭;关闭swap主要是为了性能考虑
swapoff -a
# 可以通过这个命令查看swap是否关闭了
free
# 永久关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab

6、禁用 SELinux

# 临时关闭
setenforce 0
# 永久禁用
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

7、允许 iptables 检查桥接流量(可选,所有节点)

若要显式加载此模块,请运行 sudo modprobe br_netfilter,通过运行 lsmod | grep br_netfilter 来验证 br_netfilter 模块是否已加载。

sudo modprobe br_netfilter
lsmod | grep br_netfilter

为了让 Linux 节点的 iptables 能够正确查看桥接流量,请确认 sysctl 配置中的 net.bridge.bridge-nf-call-iptables 设置为 1。例如:

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOFsudo modprobe overlay
sudo modprobe br_netfilter# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF# 应用 sysctl 参数而不重新启动
sudo sysctl --system