国内环境使用kubeadm安装部署kubernetes

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/fy_long/article/details/88829070

安装前需要准备工作:

1、虚拟机工具VMware、VirtualBox等
2、系统镜像文件CentOS 7
3、安装好虚拟机2-3台

本次教程使用的是2台虚拟机:

1、10.67.34.130 k8s1
2、10.67.34.131 k8s2

开始整个安装过程:

一、2台虚拟机 全部需要进行的操作如下

1、设置主机名 (主要是查看node信息 等 时显示的名称就是该名称)

hostnamectl set-hostname k8s1 #k8s1是设置名称 2台设备分别是k8s1 k8s2

2、修改host文件 (此项可以只在Master上面进行设置即可)

vi /etc/hosts

添加
10.67.34.130 k8s1
10.67.34.131 k8s2

3、关闭selinux

setenforce 0 #实时动态关闭

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #禁止重启后自动开启

4、关闭交换分区

swapoff -a #实时动态关闭
sed -i '/ swap / s/^/#/' /etc/fstab #禁止重启后自动开启

5、网络配置文件

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

#退出 按 Ctrl + D


modprobe br_netfilter  #执行该命令 如果不执行就会在应用k8s.conf时出现加载错误

sysctl -p /etc/sysctl.d/k8s.conf #应用配置文件

6、配置资源地址

yum install wget -y  #安装wget命令行

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #配置yum源

yum makecache #更新缓存

yum install -y yum-utils device-mapper-persistent-data lvm2 #安装yum扩展工具

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #配置docker下载的地址

7、安装Docker

yum list docker-ce --showduplicates|sort -r  #展示版本列表

yum install –y docker-ce  #默认安装最新版,也可以指定版本下载

systemctl start docker #启动docker
systemctl enable docker #将docker加入到开机启动

docker version #查看docker启动情况 和版本信息

8、配置k8s资源的下载地址

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

9、安装 kubelet kubeadm kubectl

yum install -y kubelet kubeadm kubectl

systemctl enable kubelet.service #开机启动

10、安装镜像

vim images.sh

#!/bin/bash

images=(
    kube-scheduler:v1.13.4
    kube-proxy:v1.13.4
    kube-controller-manager:v1.13.4
    etcd:3.2.24
    kube-apiserver:v1.13.4
    pause:3.1)

for imageName in ${images[@]} ; do
    docker pull docker.io/mirrorgooglecontainers/$imageName
    docker tag docker.io/mirrorgooglecontainers/$imageName k8s.gcr.io/$imageName
    docker rmi docker.io/mirrorgooglecontainers/$imageName
done

docker pull coredns/coredns:1.2.6
docker tag coredns/coredns:1.2.6 k8s.gcr.io/coredns:1.2.6
docker rmi coredns/coredns:1.2.6

chmod +x images.sh
./images.sh

docker images #查看所有镜像是否都已经pull下来了

二、开始初始化 (只在主节点Master上面 操作)

#只在Master的主机上面执行 版本信息与你要安装的相同
kubeadm init --kubernetes-version=v1.13.4 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.67.34.130 

#当出现 类似 如下说明 master 安装成功
kubeadm join --token 19f284.da47998c9abb01d3 10.67.34.130:6443 --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538

#然后执行 安装成功提示的 命令行  这部分执行你安装成功后的部分 可能每个人的有所不同
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

三、节点node加入(默认此事上面一步骤 都进行了操作)

# 执行master 安装成功后的 kubeadm join命令 注意是你自己的,下面是举例
kubeadm join --token 19f284.da47998c9abb01d3 10.67.34.130:6443 --discovery-token-ca-cert-hash sha256:0fd95a9bc67a7bf0ef42da968a0d55d92e52898ec37c971bd77ee501d845b538

四、主节点查看命令

#命令一 
kubectl get cs #显示内容如下说明Master安装没问题
NAME                 STATUS    MESSAGE              ERROR
scheduler            Healthy   ok                   
controller-manager   Healthy   ok                   
etcd-0               Healthy   {"health": "true"} 

#命令二
kubectl get pod -n kube-system #查看pod状态 下面只是部分pod内容
NAME                                   READY   STATUS             RESTARTS   AGE
coredns-86c58d9df4-j9g8d               1/1     Running            0          128m
coredns-86c58d9df4-pg45w               1/1     Running            0          128m
etcd-k8s1                              1/1     Running            0          127m
kube-apiserver-k8s1                    1/1     Running            0          127m
kube-controller-manager-k8s1           1/1     Running            0          127m


#在这里你可能发现你的coredns 的状态并不是Running 不要着急,后面还有个配置,配置好就自动Running了

#命令三
kubectl get node #查看节点状态 
NAME   STATUS   ROLES    AGE    VERSION
k8s1   Ready    master   131m   v1.13.4
k8s2   Ready    <none>   93m    v1.13.4

#如果你添加了节点里面看的话 可能还未初始化,显示的是NoReady多等会儿。

五、安装Flannel 网络配置工具,用于配置第三层(网络层)网络结构 (只需要Master安装)

#如果是国内 通过执行yml无法直接下载的话执行下面命令
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
docker rmi registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64

#安装Flannel

mkdir -p ~/k8s/
cd k8s/
ll

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f kube-flannel.yml

#安装成功后查看pod
kubectl get pod -n kube-system
NAME                                   READY   STATUS             RESTARTS   AGE
coredns-86c58d9df4-j9g8d               1/1     Running            0          128m
coredns-86c58d9df4-pg45w               1/1     Running            0          128m
etcd-k8s1                              1/1     Running            0          127m
kube-apiserver-k8s1                    1/1     Running            0          127m
kube-controller-manager-k8s1           1/1     Running            0          127m
kube-flannel-ds-amd64-7btlw            1/1     Running            0          91m
kube-flannel-ds-amd64-9vq42            1/1     Running            0          106m
kube-flannel-ds-amd64-kdf42            1/1     Running            0          90m
kube-proxy-dtmfs                       1/1     Running            0          128m
kube-proxy-p76tc                       1/1     Running            0          90m
kube-proxy-xgw28                       1/1     Running            0          91m
kube-scheduler-k8s1                    1/1     Running            0          128m

#全部Running则表示 成功了

#如果发现哪一项的STATUS的状态不是Running,执行如下命令
kubectl describe pod  [这里是复制上面的Name列] -n kube-system 

#这里会看到具体的错误内容,然后根据提示进行解决。
展开阅读全文

没有更多推荐了,返回首页