k8s 安装

1. 关闭swap   

# 临时关闭
swapoff -a

# 永远关闭,打开如下文件注释掉swap那一行
vi /etc/fstab

2.  关闭 SELINUX

# 临时关闭
setenforce 0

# 永远关闭,打开文件
vi /etc/selinux/config
SELINUX=disabled

 3. 安装docker

yum install docker

4. docker镜像加速

#修改文件
vi /etc/docker/daemon.json

{
"registry-mirrors": ["https://gjedjzbz.mirror.aliyuncs.com"]
}

5. 修改主机名

hostnamectl set-hostname k8s-master

6. 添加 repo源

cat < /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

7. 安装 

# 安装
yum install -y kubelet kubeadm kubectl
# 开机启动 
systemctl enable kubelet && systemctl start kubelet

8.  拉取 资源镜像:

# 拉取镜像
docker pull mirrorgooglecontainers/kube-apiserver:v1.15.0
docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.0
docker pull mirrorgooglecontainers/kube-scheduler:v1.15.0
docker pull mirrorgooglecontainers/kube-proxy:v1.15.0
docker pull mirrorgooglecontainers/pause:3.1
docker pull mirrorgooglecontainers/etcd:3.3.10
docker pull coredns/coredns:1.3.1
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64

#修改镜像的标签
docker tag mirrorgooglecontainers/kube-apiserver:v1.15.0 k8s.gcr.io/kube-apiserver:v1.15.0
docker tag mirrorgooglecontainers/kube-controller-manager:v1.15.0 k8s.gcr.io/kube-controller-manager:v1.15.0
docker tag mirrorgooglecontainers/kube-scheduler:v1.15.0 k8s.gcr.io/kube-scheduler:v1.15.0
docker tag mirrorgooglecontainers/kube-proxy:v1.15.0 k8s.gcr.io/kube-proxy:v1.15.0
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
docker tag mirrorgooglecontainers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64

# 移除旧的镜像
docker rmi mirrorgooglecontainers/kube-apiserver:v1.15.0
...

  注意:修改tag后一定要注意后面的imageid是否有重复:      

k8s 安装_第1张图片

 

9. 初始化master

kubeadm init --kubernetes-version=v1.15.0 --pod-network-cidr=10.244.0.0/16
   --kubernetes-version: 用于指定 k8s版本
   --apiserver-advertise-address:用于指定使用 Master的哪个network interface进行通信,若不指定,则 kubeadm会自动选择具有默认网关的 interface
   --pod-network-cidr:用于指定Pod的网络范围。该参数使用依赖于使用的网络方案,本文将使用经典的flannel网络方案

 

错误处理文档1:https://cloud.tencent.com/developer/article/1454325

 错误摘要:It seems like the kubelet isn't running or healthy)

 

10.  配置 kubectl,在 Master上用 root用户执行下列命令来配置 kubectl

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile
source /etc/profile 
echo $KUBECONFIG

 11.  安装Pod网络

  •   设置系统参数
    
    sysctl net.bridge.bridge-nf-call-iptables=1

     

  • 然后在 Master节点上执行如下命令

    kube-flannel.yaml 下载地址
  •   

     一旦 Pod网络安装完成,可以执行如下命令检查一下 CoreDNS Pod此刻是否正常运行起来了,一旦其正常运行起来,则可以继续后续步骤

kubectl get pods --all-namespaces -o wide

 

 12. 主节点是否就绪

kubectl get nodes

 

13. 添加slave节点:

       slave节点拉取镜像,不需要全部拉下来,只拉取用到的:

# 试了好多次,如果拉全的话,slave节点启动的时候会报莫名其妙的错误,只保留这3个后再没出现问题
docker pull mirrorgooglecontainers/kube-proxy:v1.15.0
docker pull mirrorgooglecontainers/pause:3.1
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64

             

   slave节点加入:

kubeadm join 192.168.199.130:6443 --token 8rix9v.pcfkjlypg07m5hvm --discovery-token-ca-cert-hash sha256:16b83fa640d69a3c3d1d981969641cf61f255503f5eb9712eae22a92f5420859

     如果 token忘记,则可以去 Master上执行如下命令来获取:

kubeadm token list

    加入成功后,返回如下:

k8s 安装_第2张图片

14.  复制 master节点的  10-flannel.conflist 文件到slave节点,该文件在master的位置: /etc/cni/net.d   ,拷贝到slave节点上相同的文件目录下。

 

15. 查看节点状态:


kubectl get nodes

16. 移除slave节点:

  •  在master上执行以下命令:
    kubectl delete node 

     

  •  如果被移除的slave节点要重新加入集群,那么在slave节点上先执行以下命令
    # 先执行该命令
    kubeadm reset
    
    # 再执行加入命令
    kubeadm join ……
       

 

 


 

安装过程可能出现的错误:

  •   unknown container "/system.slice/docker.service"
    • 解决方法:
      vi /etc/sysconfig/kubelet

        加入:

      --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice

        重启kubelet

      systemctl restart kubelet

       

  •   查看错误日志的命令:
    # 查看 kubelet的错误日志
    journalctl -f -u kubelet

     

 

参考文档连接:https://www.codesheep.cn/2018/12/27/kubeadm-k8s1-13-1/

 

你可能感兴趣的:(k8s 安装)