k8s学习笔记-1 环境搭建

413 阅读2分钟

总目录

  • 一、环境搭建
  • 二、安装主节点
  • 三、加入从节点
  • 四、配制内部网络 Calico
  • 五、配制第一个pod
  • 六、配制统一访问入口Ingress
  • 七、数据持久化nfs
  • 八、存储配制ConfigMap
  • 九、可视化管理界面Dashboard

0,前言

此系列文章为学习实践笔记,主要参考了以下两位老师的文章和视频:

www.funtl.com/zh/service-…

github.com/findsec-cn/…

1,使用VirtualBox 6新建四台虚拟机,系统选用centOS 7.7.1908

用途 主机名 IP CPU 内存 磁盘
主节点 k8s-master 192.168.2.90 2核 2G 20G
从节点 k8s-node-01 192.168.2.91 2核 2G 20G
从节点 k8s-node-02 192.168.2.92 2核 2G 20G
数据卷 k8s-volumes 192.168.2.93 2核 2G 20G

2,修改主机名

$ hostnamectl set-hostname set-hostname k8s-master

3,修改hosts文件

$ vi /etc/hosts

# 加入以下配制
192.168.2.93    k8s-volumes
192.168.2.90    k8s-master
192.168.2.91    k8s-node-01
192.168.2.92    k8s-node-02

4,关闭SELinux

$ sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
$ setenforce 0

5,关闭防火墙

$ systemctl stop firewalld
$ systemctl disable firewalld

6,关闭Swap分区

$ vi /etc/fstab
# 注释如下行
# /dev/mapper/centos-swap swap                    swap    defaults        0 0

$ swapoff -a && sysctl -w vm.swappiness=0

7,配置内核参数

$ cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF

$ sysctl --system

8,加载ipvs相关模块

$ cat > /etc/sysconfig/modules/ipvs.modules << EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF

$ chmod 755 /etc/sysconfig/modules/ipvs.modules 
$ bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4
$ yum install -y ipset ipvsadm

9,添加Docker的yum仓库

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

$ yum update

10,安装和配制Docker(镜像加速可以使用自己的,阿里云申请即可)

$ yum install -y yum-utils device-mapper-persistent-data lvm2
$ yum install -y docker-ce docker-ce-cli containerd.io
$ mkdir /etc/docker
$ cat << EOF > /etc/docker/daemon.json
{
    "registry-mirrors": ["https://3354lgsa.mirror.aliyuncs.com"]
}
EOF

11,启动和查看Docker

$ systemctl enable docker && systemctl start docker
$ docker version
$ docker info

12,配制kubernetes的yum仓库

$ cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
       http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

13,安装kubeadm, kubelet和kubectl

$ yum update
$ yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

14,启动kubelet,查看kubeadm, kubelet和kubectl

  • kubeadm:用于初始化 Kubernetes 集群
  • kubectl:Kubernetes 的命令行工具,主要作用是部署和管理应用,查看各种资源,创建,删除和更新组件
  • kubelet:主要负责启动 Pod 和容器
$ systemctl enable kubelet.service && systemctl start kubelet.service
$ kubelet version
$ kubeadm version
$ kubectl version

14,安装rpcbind,nfs

$ yum install nfs-utils rpcbind
$ service rpcbind start
$ service nfs start

15,结语

至此,k8s单集群所需环境已全部搭建完成。安装并配制好一台后,在虚拟机里克隆出另外三台,修改ip和主机名即可。