【社区图书馆】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