三、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的案例.本 ...
随机推荐
- <STL源码剖析>配置器
1.stl六大部件 容器:各种数据结构,包括vector,list,deque,set,map等等 算法:各种常用算法,sort,search 迭代器:容器和算法之间的粘合器 防函数:类似于函数 配接 ...
- Egg入门学习(一)
一:什么是Egg? 它能做什么?Egg.js是nodejs的一个框架,它是基于koa框架的基础之上的上层框架,它继承了koa的,它可以帮助开发人员提高开发效率和维护成本.Egg约定了一些规则,在开发中 ...
- flex布局,最后一行左对齐
拥抱flex 网上查找资料解决办法都是操作数据,个人感觉css问题还是用css来解决(当然问题不同,解决方案不同,这里只是针对某个问题的解决方法,不能解决所有问题,大家视情况而定,如果还是不行欢迎沟通 ...
- HAAR与DLib的实时人脸检测之实现与对比
人脸检测方法有许多,比如opencv自带的人脸Haar特征分类器和dlib人脸检测方法等. 对于opencv的人脸检测方法,优点是简单,快速:存在的问题是人脸检测效果不好.正面/垂直/光线较好的人脸, ...
- 解决Android Studio 错误方法
https://blog.csdn.net/lang523493505/article/details/82914253 https://blog.csdn.net/qq_23599965/artic ...
- RabbitMQ 惰性队列Lazy Queue
RabbitMQ 队列分为几种类型,按照不同维度来分,可以分为排他性队列.普通队列.延迟队列.惰性队列.发布订阅队列等. 今天我们讨论的主角是惰性队列 Lazy Queue.众所周知,队列可以存储消息 ...
- 小L的试卷
题目描述 小L期末考试结束,高高兴兴放假回家了,可是那么多试卷,老师还要加班批改,有n份试卷由k个老师批改,n份试卷进行了密封编号,由于试卷上的做题情况和书写的规范程序不一样,批改不同的试卷用时也可能 ...
- POJ - 3244-Difference between Triplets
其实我最开始没有这道题...是做到UPC-11079-小P的决斗,训练结束后然后搜索了一波,才了解这个题的. 非常牛逼的题...这么多人做出来了...我好菜... 对于每对三元组Ta=(La,Ja,K ...
- Deflation Methods for Sparse PCA
目录 背景 总括 Hotelling's deflation 公式 特点 Projection deflation 公式 特点 Schur complement deflation Orthogona ...
- 单例模式及设计url分发
1.单例模式 2.admin源码解析 3.注册源码流程图 3.admin之url方法的使用 4.admin源码之url设计 5.设计url源码流程 6.总结 1.单例模式 https://www. ...