1.安装docker

  1. 安装docker ```shell

    使用官方安装脚本自动安装

    curl -fsSL https://get.docker.com | bash -s docker —mirror Aliyun

设置国内源地址

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

查看docker版本

docker -v

设置开机自启

systemctl enable docker

  1. 2. 设置/etc/docker/daemon
  2. ```shell
  3. vim /etc/docker/daemon.json
  4. # 输入以下内容,然后保存
  5. {
  6. "registry-mirrors": ["https://kl7pzu3j.mirror.aliyuncs.com"],
  7. "exec-opts": ["native.cgroupdriver=systemd"]
  8. }
  9. # 重启docker
  10. systemctl daemon-reload
  11. systemctl restart docker
  1. 卸载docker
    # 删除安装包
    yum remove docker-ce
    # 删除镜像、容器、配置文件等内容
    rm -rf /var/lib/docker
    

    2.环境设置

    ```bash

    关闭防火墙

    sudo systemctl stop firewalld.service sudo systemctl disable firewalld.service

设置主机名

hostnamectl set-hostname

配置集群免密(可选)

ssh-keygen -t rsa ssh-copy-id

在master添加hosts

cat >> /etc/hosts << EOF 192.168.113.128 s1 192.168.113.129 s2 192.168.113.130 s3 EOF

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

sudo setenforce 0 sudo sed -i ‘s/^SELINUX=enforcing$/SELINUX=permissive/‘ /etc/selinux/config

关闭 swap,swap 为 0

sudo sed -ri ‘s/.swap./#&/‘ /etc/fstab sudo swapoff -a free -g

允许 iptables 检查桥接流量

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf br_netfilter EOF cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl —system

<a name="KMFRd"></a>
# 3.安装kubeadm
```bash
# 配置kubernetes镜像源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 查看要安装的版本(1.24以上版本默认使用container,不再使用docker)
yum search kubeadm --showduplicates
yum search kubelet --showduplicates
yum search kubectl --showduplicates
# 安装kubelet kubeadm kubectl
yum install -y kubectl-1.23.0-0.x86_64 kubelet-1.23.0-0.x86_64 kubeadm-1.23.0-0.x86_64
# 卸载
yum remove -y kubectl kubelet kubeadm

# 开机自启
systemctl enable --now kubelet

# 查看 kubelet 状态
systemctl status kubelet
kubelet --version

# 重新启动 kubelet
systemctl daemon-reload
systemctl restart kubelet

4.初始化 Kubernetes

  1. master节点初始化 ```bash

    不指定kubernetes-version,会自动获取最新版

    kubeadm init \ —apiserver-advertise-address=192.168.113.128 \ —image-repository registry.aliyuncs.com/google_containers \ —kubernetes-version v1.23.0 \ —service-cidr=10.96.0.0/16 \ —pod-network-cidr=192.168.0.0/16

初始化失败执行reset

kubeadm reset


2. node节点加入
```shell
kubeadm join 192.168.113.128:6443 --token 8702bn.46mh2xff291xztn3 \
        --discovery-token-ca-cert-hash sha256:118007d19ac157c618351ae11b199afb500b54e600b983402fe0a82bb6368122

# 默认token有效期为24小时,当过期之后,该token就不可用了,这时需要重新创建token
kubeadm token create --print-join-command

# 加入失败执行reset
kubeadm reset
  1. 添加环境变量 ```bash echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> /etc/profile source /etc/profile

查看kubectl命令是否正常

kubectl get nodes


4. 安装网络插件flannel
```bash
# 下载yaml到本地
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

# 查看node信息中的CIDR
kubectl describe node |grep CIDR
# 查询结果,网段为192.168
PodCIDR:                      192.168.0.0/24
PodCIDRs:                     192.168.0.0/24
PodCIDR:                      192.168.1.0/24
PodCIDRs:                     192.168.1.0/24
PodCIDR:                      192.168.2.0/24
PodCIDRs:                     192.168.2.0/24
# 修改yaml信息,将net-conf改为同一网段192.168
vim kube-flannel.yml
net-conf.json: |
  {
    "Network": "192.168.0.0/16",
    "Backend": {      
      "Type": "vxlan"
     }
  }

# 在master节点执行
kubectl apply -f kube-flannel.yml

# 查看flannel是否部署成功(所有节点都为Running就表示成功)
kubectl get pods -n kube-system
  1. 查看node状态
    # 都是Ready则表示kubernetes部署成功
    kubectl get nodes
    

    5.命令补全工具

    yum install -y bash-completion
    source /usr/share/bash-completion/bash_completion
    source <(kubectl completion bash)
    echo "source <(kubectl completion bash)" >> ~/.bashrc