【转 + 编辑】【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. 如何查看服务器(linux系统)当前的负载信息(转)

    如何查看服务器当前的负载信息http://www.flybaaa.com/help 网吧内突然很卡,这个情况我相信大家都有遇见过,但是通过什么方法来排查是否linux服务器的负载过大导致的这个问题呢? ...

  2. [.NET] GC垃圾回收机制

    前言: 在.NET程序开发中,为了将开发人员从繁琐的内存管理中解脱出来,将更多的精力花费在业务逻辑上,CLR提供了自动执行垃圾回收的机制来进行内存管理.开发人员甚至感觉不到这一过程的存在.CLR执行垃 ...

  3. windows server2012部署apache项目访问后台管理系统时tomcat就停了是怎么回事

    是由于环境变量没有配好的原因,找不到jre目录 tomcat的运行需要JRE,一般启动闪退都是因为找不到JRE,也就是说环境安装JDK时环境变量没有配置好. 我们首先打开”命令提示符“窗口,输入jav ...

  4. IO多路复用原理

    (1)IO multiplexing(2)用在什么地方?多路非阻塞式IO.(3)select和poll(4)外部阻塞式,内部非阻塞式自动轮询多路阻塞式IO IO多路复用原理:其实就是整个函数对外表现为 ...

  5. OpenGL中的需要注意的细节问题

    OpenGL中的需要注意的细节问题 1. 虽然我们使用Windows的BMP文件作为纹理时,一般是蓝色的像素在最前,其真实的格式为GL_BGR而不是GL_RGB,在数据的顺序上有所 不同,但因为同样是 ...

  6. Oracle EBS 初始化用户密码

    ---修改密码,并且将限制用户下次登录的时候(第一次登录),强制要换一个新的口令: ---此过程可以完全模拟我们在标准用户的Form里面初始化用户的密码的动作!   ---最后要说明的是,这个处理过程 ...

  7. StringFormate使用

    1常规类型的格式化 1.1显示不同转换符实现不同数据类型到字符串的转换 转换符   说明 示例 %s     字符串类型 “mingrisof” %c     字符类型 'm' %b 布尔类型 tru ...

  8. Markdown编辑器——常用语法

    Markdown是什么? 简短来说,他就是一款特别适用于写博客的编辑器.为什么适合呢,因为它特别的方便.以博客园的编辑界面来说,它原本的界面是这样的(有没有一种Word2003的既视感): 但是,当你 ...

  9. 分布式流式计算平台——S4

    本文是作者在充分阅读和理解Yahoo!最新发布的技术论文<S4:Distributed Stream Computing Platform>的基础上,所做出的知识分享. S4是Yahoo! ...

  10. C# WebService调用方法

    public class WebServiceHelper    {        /// < summary>         /// 动态调用web服务         /// < ...