一、目前近况

docker 版本 K8S支持 18.06的

二、安装docker

#1.配置仓库
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo #2.可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r #安装docker 版本 K8S支持 高版本为18.06的
sudo yum install docker-ce-18.06.0.ce-3.el7
docker version

  

默认操作

1、禁用并关闭防火墙或者直接一句话
systemctl stop firewalld & systemctl disable firewalld
2、关闭selinux
setenforce 0
3、关闭swap
swapoff -a
4、修改host配置使得各主机可通过主机名访问,方便更新和迁移
echo '39.96.69.98 kubernetes-master' >> /etc/hosts
echo '47.94.174.85 kubernetes-node01' >> /etc/hosts /etc/hosts和/etc/hostname区别
/etc/hosts主要是ip和域名的对应
/etc/hostname主要是本地主机域名(本地主机名修改过后需要重启服务器才能生效) 5、开启 br_netfilter kernel module
modprobe br_netfilter
echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables
echo '1' > /proc/sys/net/ipv4/ip_forward
6、配置iptables/netfilter-配置系统内核参数使流过网桥的流量也进入iptables/netfilter框架中,在/etc/sysctl.conf中添加以下配置:
echo "net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
sysctl -p

  

三、安装kubelet、kubeadm、docker

配置阿里云源

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

安装

yum install -y kubelet kubeadm kubectl

4、启动 docker and kublet

systemctl start docker && systemctl enable docker
systemctl start kubelet && systemctl enable kubelet

  

  

四、下载K8S相关镜像:

kubeadm init 命令默认使用的docker镜像仓库为k8s.gcr.io,国内无法直接访问,于是需要变通一下。

首先查看需要使用哪些镜像 

kubeadm config images list
#输出如下结果
[root@iZ2zeaqk5x4qdbb3c25vbsZ ~]# kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.13.4
k8s.gcr.io/kube-controller-manager:v1.13.4
k8s.gcr.io/kube-scheduler:v1.13.4
k8s.gcr.io/kube-proxy:v1.13.4
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.2.24
k8s.gcr.io/coredns:1.2.6

1、

docker pull mirrorgooglecontainers/kube-apiserver:v1.13.4 &&
docker tag mirrorgooglecontainers/kube-apiserver:v1.13.4 k8s.gcr.io/kube-apiserver:v1.13.4 &&
docker rmi mirrorgooglecontainers/kube-apiserver:v1.13.4

  

2、

docker pull mirrorgooglecontainers/kube-controller-manager:v1.13.4 &&
docker tag mirrorgooglecontainers/kube-controller-manager:v1.13.4 k8s.gcr.io/kube-controller-manager:v1.13.4 &&
docker rmi mirrorgooglecontainers/kube-controller-manager:v1.13.4  

3、

docker pull mirrorgooglecontainers/kube-scheduler:v1.13.4 &&
docker tag mirrorgooglecontainers/kube-scheduler:v1.13.4 k8s.gcr.io/kube-scheduler:v1.13.4 &&
docker rmi mirrorgooglecontainers/kube-scheduler:v1.13.4

4、

docker pull mirrorgooglecontainers/kube-proxy:v1.13.4 &&
docker tag mirrorgooglecontainers/kube-proxy:v1.13.4 k8s.gcr.io/kube-proxy:v1.13.4 &&
docker rmi mirrorgooglecontainers/kube-proxy:v1.13.4

5、

docker pull mirrorgooglecontainers/pause:3.1 &&
docker tag mirrorgooglecontainers/pause:3.1 k8s.gcr.io/pause:3.1 &&
docker rmi mirrorgooglecontainers/pause:3.1

6、

docker pull mirrorgooglecontainers/etcd:3.2.24 &&
docker tag mirrorgooglecontainers/etcd:3.2.24 k8s.gcr.io/etcd:3.2.24 &&
docker rmi mirrorgooglecontainers/etcd:3.2.24

7、

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

五、搭建Master节点(init方式即可)

kubeadm init --kubernetes-version=v1.13.4 --ignore-preflight-errors=NumCPU

 kubeadm join 172.17.149.114:6443 --token 1h1k6c.1mo2wfir18fr62pr --discovery-token-ca-cert-hash sha256:469920497b661c121730a7bd373e00098edb5c252daf2eb47c4d0b29e78ddd2c

  

六、搭建Node节点(join方式即可)  

执行join命令

kubeadm join 172.17.149.114:6443 --token 1h1k6c.1mo2wfir18fr62pr --discovery-token-ca-cert-hash sha256:469920497b661c121730a7bd373e00098edb5c252daf2eb47c4d0b29e78ddd2c

  

获取对外IP地址名利:curl ipinfo.io

注意:

cp /etc/kubernetes/admin.conf $HOME/

chown $(id -u):$(id -g) $HOME/admin.conf

export KUBECONFIG=$HOME/admin.conf

  

  

docker启动命令,docker重启命令,docker关闭命令

启动        systemctl start docker
守护进程重启   sudo systemctl daemon-reload
重启docker服务   systemctl restart  docker
重启docker服务  sudo service docker restart
关闭docker service docker stop
关闭docker systemctl stop docker

  

1.获取节点

  #kubectl get nodes

2.创建

 #kubectl create -f webserver.yaml

3.查看创建的状态,状态为Pending【准备中】,Running状态【已经创建成功】

 #kubectl get pods

4.查看该容器在哪个节点

 #kubectl get pods -o wide

5.查看该容器的所有状态

 #kubectl get pods httpd -o yaml

6.删除Pod

 #kubectl delete pod httpd

7.进入Pod对应的容器内部

   kubectl exec -it rc-jenkins-3049460636-lppbn /bin/bash

  

 

https://blog.csdn.net/qianghaohao/article/details/82624920         #kubeadm reset 解决join执行如上命令后报错如下(提示 10250 端口被占用)

  

三、kubernetes环境搭建(实践)的更多相关文章

  1. Docker Kubernetes 环境搭建

    Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...

  2. 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建

    主要内容: 1.Docker与Kubernetes的关系 2.SpringBoot微服务的Docker镜像创建 3.Kubernetes本地环境搭建 一.Docker与Kubernetes的关系 在说 ...

  3. Redis集群环境搭建实践

    0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...

  4. Git实战(三)环境搭建

    上次的博文中.我们介绍了一下关于Git作为版本号控制工具的基本原理,接下来我们来搭建一个主要的Git环境(因为我使用的是Windows系统.所以重点側重在这方面). Git安装 Git的安装很easy ...

  5. 二、kubernetes环境搭建

    主要内容 1.环境准备(2主机) 2.安装流程 3.问题分析 4.总结 环境配置(2主机) 系统:CentOS 7.3 x64 网络:局域网(VPC) 主机: master:172.16.0.17 m ...

  6. 【爬坑系列】之kubernetes环境搭建:二进制安装与镜像安装

    准备: 网上教如何编译与安装kubernetes的教程很多,需要提前准备的也很多,比如关闭selinux,防火墙啦....但有一点一定要注意,编译kubernetes源码时要求有2G内存,这个可是实打 ...

  7. 布式实时日志系统(三) 环境搭建之centos 6.4下hadoop 2.5.2完全分布式集群搭建最全资料

    最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...

  8. kubernetes 环境搭建

    一.规划1.系统centos 7 2.ip规划及功能分配192.168.2.24 master 192.168.2.24 etcd 192.168.2.25 node1(即minion)192.168 ...

  9. 分布式集群环境下,如何实现session共享三(环境搭建)

    这是分布式集群环境下,如何实现session共享系列的第三篇.在上一篇:分布式集群环境下,如何实现session共享二(项目开发)中,准备好了一个通过原生态的servlet操作session的案例.本 ...

随机推荐

  1. Oracle 关于expdp和impdp的应用实践

    现在有一个场景需求,需要把在一台服务器上某个用户的对象全部迁移到另一台服务器.有以下几个情况: 1.原用户下的表分属于不同的表空间(由于维护人员在过程中修改过用户的默认表空间) 2.原用户的数据库量过 ...

  2. Mysql数据库表被锁定处理

    1.查进程,查找被锁表的那个进程的ID show processlist; command 为waitting的就是锁住的表,info为执行某条语句的信息,id为进程. 2.kill掉锁表的进程ID ...

  3. 【机器学习】SKlearn + XGBoost 预测 Titanic 乘客幸存

    Titanic 数据集是从 kaggle下载的,下载地址:https://www.kaggle.com/c/titanic/data 数据一共又3个文件,分别是:train.csv,test.csv, ...

  4. FineUIMvc随笔(7)扩展通知对话框(显示多个不重叠)

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 这篇文章我们将改造 FineUIMvc 默认的通知对话框,使得同时显示多个也不会重叠.并提前出一个公共的JS文件,供大家使用. ...

  5. 从高德采集最新的省市区三级坐标和行政区域边界,用js在浏览器中运行

    本文描述的是对国家统计局于2019-01-31发布的<2018年统计用区划代码和城乡划分代码(截止2018年10月31日)>中省市区三级的坐标和行政区域边界的采集. 本文更新(移步查阅): ...

  6. WPF仿网易云音乐系列(一、左侧菜单栏:Expander+RadioButton)

    1.简介 上一篇咱们说到,网易云音乐的左侧菜单栏可以通过Expander+RadioButton来实现,具体如何实现,咱们下面开始干: 首先来一张网易云音乐PC版原图(个人觉得PC版比UWP版左侧菜单 ...

  7. 如何用CSS3画出一个立体魔方?

    前言 最近在写<动画点点系列>文章,上一期分享了< 手把手教你如何绘制一辆会跑车 >,本期给大家带来是结合CSS3画出来的一个立体3d魔方,结合了js让你随心所欲想怎么转,就怎 ...

  8. Pytest+Allure定制报告

    前言: 最近在研究接口自动化的框架,好的测试报告在整个测试框架起到至关重要的部分.终于被我发现一个超好用的报告框架,不仅报告美观,而且方便CI集成. 就是它,就是它:Allure Test Repor ...

  9. 利用lnmp一键安装的php环境忘记mysql,root用户密码解决方法

    1.cd /lnmp1.5/tools/ 2.sh reset_mysql_root_password.sh 这样,即可完成修改!

  10. Python IO模型

    这篇博客是本人借鉴一些大神的博客并结合自己的学习过程写下的. 事件驱动模型 事件驱动模型是一种编程范式,这里程序的执行流由外部事件来决定.它的特点是包含一个事件循环,当外部事件发生时,不断从队列里取出 ...