【转 + 编辑】【From】 https://www.jianshu.com/p/4d61f18bc62d  , https://www.jianshu.com/p/5ff6e26d1912

时间是2019年3月18日。测试安装的Centos版本是 7.4.1708 ,k8s 以及 kubeadm 版本为 1.13.4 ,docker 版本为 18.06 ,Flannel 版本为 0.11.0。

过程主要参考以上文章,但结合实测情况,做了一些修改或者编辑。以下第一步的安装脚本可以直接用 root 整个执行,无需FQ,但依赖第三方仓库。

第一步: 安装 K8S 和 kubeadm (所有节点)

### 关闭 selinux
setenforce #实时动态关闭 selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config #禁止重启后自动开启

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

### 网络配置文件
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables =
net.bridge.bridge-nf-call-iptables =
net.ipv4.ip_forward =
vm.swappiness=
EOF modprobe br_netfilter #执行该命令 如果不执行就会在应用k8s.conf时出现加载错误
sysctl -p /etc/sysctl.d/k8s.conf #应用配置文件

### 配置资源地址
yum install -y wget #安装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下载的地址

### 安装Docker
yum list docker-ce --showduplicates|sort -r #展示版本列表 #yum install –y docker-ce #默认安装最新版,也可以指定版本下载
yum install -y docker-ce-18.06.3.ce-3.el7 systemctl start docker #启动docker
systemctl enable docker #将docker加入到开机启动 docker version #查看docker启动情况 和版本信息 ### 配置docker国内镜像 mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

service docker restart
### 配置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=
gpgcheck=
repo_gpgcheck=
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF ### 安装 kubelet kubeadm kubectl
yum install -y kubelet kubeadm kubectl systemctl enable kubelet.service #开机启动

### 修改10-kubeadm.conf 文件
docker info | grep -i cgroup #查看 Cgroup Driver: cgroupfs 有可能你的与这个不一样是System 这个地方决定 下面的cgroup-driver 值 一定要保证这两个地方相同 # vi /etc/systemd/system/kubelet.service.d/-kubeadm.conf #编辑文件 # Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
# Environment="KUBELET_SYSTEM_PODS_ARGS=--pod-manifest-path=/etc/kubernetes/manifests --allow-privileged=true --fail-swap-on=false" # 在编辑文件中添加上面内容 注意一定要保证-cgroup-driver=cgroupfs的值与docker哪里查询出来的一样 ### 查看需要安装的k8s必须镜像与 安装镜像 kubeadm config images list #可以查看所需安装的镜像文件 kubeadm config images list |sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#docker.io/mirrorgooglecontainers#g' |sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker tag ",$1":"$2,$1":"$2}' |sed -e 's#mirrorgooglecontainers#k8s.gcr.io#2' |sh -x
docker images |grep mirrorgooglecontainers |awk '{print "docker rmi ", $1":"$2}' |sh -x COREDNS_VER=`docker images | grep coredns | awk '{print $2}'` docker pull coredns/coredns:${COREDNS_VER}
docker tag coredns/coredns:${COREDNS_VER} k8s.gcr.io/coredns:${COREDNS_VER}
docker rmi coredns/coredns:${COREDNS_VER} #coredns 的版本号要与你查询所需安装镜像的版本号相同,我这里需要的是1.2.6 docker images | grep k8s.gcr.io #查看所有镜像是否都已经pull下来了

#k8s.gcr.io/kube-proxy v1.13.4 fadcc5d2b066 2 weeks ago 80.3MB
#k8s.gcr.io/kube-apiserver v1.13.4 fc3801f0fc54 2 weeks ago 181MB
#k8s.gcr.io/kube-controller-manager v1.13.4 40a817357014 2 weeks ago 146MB
#k8s.gcr.io/kube-scheduler v1.13.4 dd862b749309 2 weeks ago 79.6MB
#k8s.gcr.io/coredns 1.2.6 f59dcacceff4 4 months ago 40MB
#k8s.gcr.io/etcd 3.2.24 3cab8e1b9802 5 months ago 220MB
#k8s.gcr.io/pause 3.1 da86e6ba6ca1 15 months ago 742kB

第二步: 初始化 (只在主节点Master上面操作)

### 先配置好以下信息
K8S_VER=v1.13.4
MASTER_IP=192.168.2.108 #只在Master的主机上面执行 版本信息与你要安装的相同
kubeadm init --kubernetes-version=${K8S_VER} --pod-network-cidr=10.244.0.0/ --apiserver-advertise-address=${MASTER_IP} # 当出现 类似 如下说明 master 安装成功
# kubeadm join --token 19f284.da47998c9abb01d3 192.168.1.111: --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

#如果是国内 通过执行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


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

第三步: 加入node节点,检查


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

### 在node节点上加入flannel的镜像,由于正常拉不到,也要绕路
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


### 主节点查看命令

#命令一

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

#命令三

kubectl get node #查看节点状态

NAME STATUS ROLES AGE VERSION
k8s1 Ready master 131m v1.13.1
k8s2 Ready <none> 93m v1.13.1
k8s3 Ready <none> 93m v1.13.1


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

 

卸载:

kubectl delete node --all
kubeadm reset -f
modprobe -r ipip
lsmod yum remove -y kubelet kubeadm kubectl docker-ce docker-ce-cli
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd

 

[转] CentOS7 用 kubeadm 快速安装 Kubernetes v1.13.4 最新教程的更多相关文章

  1. [转帖]centos7 使用kubeadm 快速部署 kubernetes 国内源

    centos7 使用kubeadm 快速部署 kubernetes 国内源 https://www.cnblogs.com/qingfeng2010/p/10540832.html 前言 搭建kube ...

  2. centos7 使用kubeadm 快速部署 kubernetes 国内源

    前言 搭建kubernetes时看文档以及资料走了很多弯路,so 整理了最后成功安装的过程已做记录.网上的搭建文章总是少一些步骤,想本人这样的小白总是部署不成功(^_^). 准备两台或两台以上的虚拟机 ...

  3. kubeadm安装kubernetes V1.11.1 集群

    之前测试了离线环境下使用二进制方法安装配置Kubernetes集群的方法,安装的过程中听说 kubeadm 安装配置集群更加方便,因此试着折腾了一下.安装过程中,也有一些坑,相对来说操作上要比二进制方 ...

  4. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  5. 使用kubeadm安装kubernetes v1.14.1

    使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ​ ⼀ 一台或多台运⾏行行着下列列系统的机器器: ​ Ubuntu 16.04+ ​ Debi ...

  6. 使用 kubeadm 安装 kubernetes v1.16.0

    近日通过kubeadm 安装 kubernetes v1.16.0,踩过不少坑,现记录下安装过程. 安装环境: 系           统:CentOS Linux release 7.6 Docke ...

  7. Kubernetes探索学习001--Centos7.6使用kubeadm快速部署Kubernetes集群

    Centos7.6使用kubeadm快速部署kubernetes集群 为什么要使用kubeadm来部署kubernetes?因为kubeadm是kubernetes原生的部署工具,简单快捷方便,便于新 ...

  8. Centos7 二进制安装 Kubernetes 1.13

    目录 1.目录 1.1.什么是 Kubernetes? 1.2.Kubernetes 有哪些优势? 2.环境准备 2.1.网络配置 2.2.更改 HOSTNAME 2.3.配置ssh免密码登录登录 2 ...

  9. [转贴]CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群

    CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群 http://blog.51cto.com/10880347/2326146   一.概述 kubernetes 1.13 ...

随机推荐

  1. Java设计模式(7)——装饰者模式

    转载:http://blog.csdn.net/yanbober/article/details/45395747 一.装饰者模式的定义 装饰者( Decorator )模式又叫做包装模式.通过一种对 ...

  2. 我大中华微软MVP中国区人才库(转)

    出处:http://www.genshuixue.com/i-cxy/p/15349735 刘海峰:国内知名微软开源技术网站51Aspx 创始人,十年以上的asp.net从业经验,微软MSDN特约讲师 ...

  3. linux上chrome、vlc等程序root不能运行的解决办法

    which vlc 或者 whereis vlc 输入/geteuid,输入i进入输入模式,将geteuid改成getppid,然后ESC,输入wq,保存退出,这样程序root用户就可以运行了. ch ...

  4. jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...

  5. loadrunner - 问题汇总及解决方案(持续更新)

    1.在此界面点击Run Load Tests提示: ”Can not save the license information because access to the registry is de ...

  6. pro2

    #include<iostream> double sum(int n,dounle[]) {  double  array[100]; foe(int i=0;i<100;i++; ...

  7. 解决同一程序在并行同时调用时,出现资源等待错误-使用DBMS_LOCK.sleep

    解决同一程序被并行同时调用时,出现资源等待错误问题. 使用DBMS_LOCK.sleep (10); PROCEDURE prc_lock_test(v_engine_id in varchar, v ...

  8. solr特点三: 基于Solr实现排序定制化参考

    排序实现有N种形式,最低成本.最快响应时间是目标 一份索引,支持N种排序策略并且在线互不干扰是要考虑的每一种实现,处理的场景是不同的,不要千篇一律 020排序,从索引到效果,有不少坑,这篇文章没有细说 ...

  9. Myeclipse文件没出错,但是项目上显示有错的解决办法

    因工作原因,同事将他的java项目交接给了我.和平时的交接一样.他把他最新的源代码,打成压缩包,发给我.我解压后,使用myeclipse开发工具,通过导入,将项目导入到我的开发工具中,这个时候有一个问 ...

  10. 论 BUG调试与(程序猿)初学者

    作为一枚程序猿,BUG调试是最基本的技能,对于初学者更是重中之重.个人而言,要想为自己的程序猿生涯更上一层楼,就得知道什么是BUG调试,而且还必须知道怎么调好BUG.那么BUG究竟是什么呢?在我之前的 ...