三、kubernetes环境搭建(实践)
一、目前近况

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环境搭建(实践)的更多相关文章
- Docker Kubernetes 环境搭建
Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...
- 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建
主要内容: 1.Docker与Kubernetes的关系 2.SpringBoot微服务的Docker镜像创建 3.Kubernetes本地环境搭建 一.Docker与Kubernetes的关系 在说 ...
- Redis集群环境搭建实践
0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...
- Git实战(三)环境搭建
上次的博文中.我们介绍了一下关于Git作为版本号控制工具的基本原理,接下来我们来搭建一个主要的Git环境(因为我使用的是Windows系统.所以重点側重在这方面). Git安装 Git的安装很easy ...
- 二、kubernetes环境搭建
主要内容 1.环境准备(2主机) 2.安装流程 3.问题分析 4.总结 环境配置(2主机) 系统:CentOS 7.3 x64 网络:局域网(VPC) 主机: master:172.16.0.17 m ...
- 【爬坑系列】之kubernetes环境搭建:二进制安装与镜像安装
准备: 网上教如何编译与安装kubernetes的教程很多,需要提前准备的也很多,比如关闭selinux,防火墙啦....但有一点一定要注意,编译kubernetes源码时要求有2G内存,这个可是实打 ...
- 布式实时日志系统(三) 环境搭建之centos 6.4下hadoop 2.5.2完全分布式集群搭建最全资料
最近公司业务数据量越来越大,以前的基于消息队列的日志系统越来越难以满足目前的业务量,表现为消息积压,日志延迟,日志存储日期过短,所以,我们开始着手要重新设计这块,业界已经有了比较成熟的流程,即基于流式 ...
- kubernetes 环境搭建
一.规划1.系统centos 7 2.ip规划及功能分配192.168.2.24 master 192.168.2.24 etcd 192.168.2.25 node1(即minion)192.168 ...
- 分布式集群环境下,如何实现session共享三(环境搭建)
这是分布式集群环境下,如何实现session共享系列的第三篇.在上一篇:分布式集群环境下,如何实现session共享二(项目开发)中,准备好了一个通过原生态的servlet操作session的案例.本 ...
随机推荐
- [MicroPython]STM32F407开发板DIY声光控开关
1.实验目的 1. 学习在PC机系统中扩展简单I/O 接口的方法. 2. 进一步学习编制数据输出程序的设计方法. 3. 学习光敏模块的工作原理. 4. 学习声音的工作原理. 5. 学习F40 7Mic ...
- Spring-boot 编写hello world
项目启动时出现如下报错信息: Unrecognized VM option 'TieredStopAtLevel=1' Could not create the Java virtual machin ...
- LOJ2527 HAOI2018 染色 容斥、生成函数、多项式求逆
传送门 调了1h竟然是因为1004535809写成了998244353 "恰好有\(K\)种颜色出现了\(S\)次"的限制似乎并不容易达到,考虑容斥计算. 令\(c_j\)表示强制 ...
- 如何添加一种新Case协议
这里以添加基础http为例 首先要在脚本文件(XML文件)中定义好这种协议的基本信息 您必须在这里设计好您协议预先需要的数据(比如串口协议,那波特率,串口号等可能是不会经常改变的就可以在这里先 ...
- 基于注解处理器开发自动生成getter和setter方法的插件
昨天无意中,逛到了lombok的网站,并看到了首页的5分钟视频,视频中的作者只是在实体类中写了几个字段,就可以自动编译为含setter.getter.toString()等方法的class文件.看着挺 ...
- 苹果 icloud 把我 ipad min 所有照片丢失
苹果 icloud 把我 ipad min 所有照片丢失,大概发生在 '云上贵州' 之后! 发帖纪念--- 求个说法---
- Westore 1.0 正式发布 - 小程序框架一个就够
世界上最小却强大的小程序框架 - 100多行代码搞定全局状态管理和跨页通讯 Github: https://github.com/dntzhang/westore 众所周知,小程序通过页面或组件各自的 ...
- python爬虫随笔-scrapy框架(1)——scrapy框架的安装和结构介绍
scrapy框架简介 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试 ...
- Python_匿名函数_47
匿名函数 Eva_J 匿名函数:为了解决那些功能很简单的需求而设计的一句话函数 #这段代码 def calc(n): return n**n print(calc(10)) #换成匿名函数 calc ...
- Python—包介绍
包(Package) 当你的模块文件越来越多,就需要对模块文件进行划分,比如把负责跟数据库交互的都放一个文件夹,把与页面交互相关的放一个文件夹, . └── my_proj ├── crm #代码目录 ...