1.创建三台centos虚拟机

使用的官方最小镜像安装

CentOS-7-x86_64-Minimal-1804.iso

建议最小硬件配置:2核CPU、2G内存、20G硬盘
master配置详情
在这里插入图片描述
node1node2配置详情
在这里插入图片描述
三台虚拟机在安装centos的时候在网络IPV4指定DHCP,配置IPV4固定地址,保证可以访问外网,我这里虚拟机的网段配置的和本机的网段一样的。
master 192.168.1.150
node1 192.168.1.151
node2 192.168.1.152

2.在所有节点执行下面的命令

2.1 设置hosts文件

#编辑三个节点的 /etc/hosts 文件 ,添加下面内容:
192.168.1.150 master
192.168.1.151 node1
192.168.1.152 node2

2.2 设置主机名

#在master上执行
hostnamectl set-hostname master
#在node1上执行
hostnamectl set-hostname node1
#在node2上执行
hostnamectl set-hostname node2

2.3 时间同步

#启动chronyd服务
systemctl start chronyd
systemctl enable chronyd
date

没有chronyd命令使用yum install chrony 安装

2.4 关闭firewalld服务

systemctl stop firewalld
systemctl disable firewalld

2.5 关闭selinux服务

sed -i 's/enforcing/disabled/' /etc/selinux/config #重启后生效

2.6 禁用swap分区

vi /etc/fstab 
#注释掉下面的设置
 /dev/mapper/centos-swap swap

2.8 添加网桥过滤和地址转发功能

cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

#然后执行
sysctl --system   //生效命令

2.9 docker 安装参考

https://blog.csdn.net/qq_33517844/article/details/88146082

安装docker慢可以设置

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

2.10 kubernetes镜像切换成国内源


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


2.11 安装指定版本 kubeadm kubelet和kubectl


yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0

#设置kubelet开机启动
systemctl enable kubelet


3. 在Master上执行命令


# 下面的操作只需要在master节点上执行即可(初始化完成后会很慢,最后会输出一个join命令,可以先保存后边会用)

kubeadm init \
  --apiserver-advertise-address=192.168.1.150 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.23.0 \
  --service-cidr=10.96.0.0/12 \
  --pod-network-cidr=10.244.0.0/16 \
  --ignore-preflight-errors=all
  
–apiserver-advertise-address #集群通告地址(master 机器IP)
–image-repository #由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
–kubernetes-version #K8s版本,与上面安装的一致
–service-cidr #集群内部虚拟网络,Pod统一访问入口
–pod-network-cidr #Pod网络,与下面部署的CNI网络组件yaml中保持一致

#创建必要文件
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config


在执行kubeadm init 安装时报错
之前我的Docker是用yum安装的,docker的cgroup驱动程序默认设置为system。默认情况下Kubernetes cgroup为systemd,我们需要更改Docker cgroup驱动,

vim /etc/docker/daemon.json

{
  "exec-opts": ["native.cgroupdriver=systemd"]
}

systemctl restart docker
# 重新初始化
kubeadm reset # 先重置
# 在执行 kubeadm init 

4. 从节点执行(node1和node2) 把初始化生成的 join 命令 在这里执行

kubeadm join 192.168.1.150:6443 --token 4zjgmo.26w39uqko0zjpck8 \
        --discovery-token-ca-cert-hash sha256:aa7c7fdfd787d048ea8a0cf9ff156b8b06d9bb0fe7376e30a05f5f98fa6d5161

#默认token有效期为24小时,当过期之后,该token就不可用了。这时就需要重新创建token,可以直接使用命令快捷生成:

kubeadm token create --print-join-command

5. 部署容器网络(CNI)(master)


Calico是一个纯三层的数据中心网络方案,是目前Kubernetes主流的网络方案。 下载YAML:

wget https://docs.projectcalico.org/manifests/calico.yaml

#下载完后还需要修改里面定义Pod网络(CALICO_IPV4POOL_CIDR),与前面kubeadm init的 –pod-network-cidr指定的一样

# 大概在 4601行
            - name: CALICO_IPV4POOL_CIDR
              value: "10.244.0.0/16"

kubectl apply -f calico.yaml

#查看节点状态
kubectl get all -owide

#查看通信状态
kubectl get pods -n kube-system

# 至此K8s已经部署完成。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐