一、安装环境

  阿里云:centos 7.3

  master节点:外网IP(116.62.205.90)、内网IP(172.16.223.200)

  node节点:外网IP(116.62.212.174)、内网IP(172.16.223.201)

二、Master节点安装步骤

1、在master节点上安装etcd

备注:etcd是用于共享配置和服务发现的分布式,一致性的KV存储系统,类似ZK和consul

  执行命令:yum -y install etcd

  修改/etc/etcd/etcd.conf文件,主要修改如下:

ETCD_LISTEN_PEER_URLS="http://172.16.223.200:2380"
ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2379,http://172.16.223.200:2379" ETCD_ADVERTISE_CLIENT_URLS="http://172.16.223.200:2379"

2、在master节点上安装kubernetes-master

  执行命令:yum -y install kubernetes-master

  修改配置文件/etc/kubernetes/apiserver:

###
# kubernetes system config
#
# The following values are used to configure the kube-apiserver
# # The address on the local server to listen to.
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0" # The port on the local server to listen on.
# KUBE_API_PORT="--port=8080" # Port minions listen on
# KUBELET_PORT="--kubelet-port=10250" # Comma separated list of nodes in the etcd cluster
KUBE_ETCD_SERVERS="--etcd-servers=http://172.16.223.200:2379" # Address range to use for services
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=172.17.0.0/16" # default admission control policies
KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota" # Add your own!
KUBE_API_ARGS=""

  修改配置文件/etc/kubernetes/config,主要修改如下:

# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://116.62.205.90:8080"

  修改配置文件/etc/kubernetes/controller-manager,主要修改如下:

KUBE_CONTROLLER_MANAGER_ARGS="--node-monitor-grace-period=10s --pod-eviction-timeout=10s"

3、在master节点的etcd中增加网络配置项

  执行命令:etcdctl mk /coreos.com/network/config '{"Network":"172.17.0.0/16"}'

  此网段地址将被flanneld调用,若与本机局域网IP同网段似乎不行;

4、启动kubernetes-master节点的相关进程

  执行命令:systemctl start etcd kube-apiserver kube-scheduler kube-controller-manager

三、NODE节点安装步骤

1、在node节点安装kubernetes-node

  执行命令:yum -y install kubernetes-node

  修改/etc/kubernetes/config,主要修改参数如下:

# How the controller-manager, scheduler, and proxy find the apiserver
KUBE_MASTER="--master=http://116.62.205.90:8080"

  修改配置文件/etc/kubernetes/kubelet,主要修改参数如下:

###
# kubernetes kubelet (minion) config # The address for the info server to serve on (set to 0.0.0.0 or "" for all interfaces)
KUBELET_ADDRESS="--address=127.0.0.1" # The port for the info server to serve on
# KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname
KUBELET_HOSTNAME="--hostname-override=172.16.223.201" # location of the api-server
KUBELET_API_SERVER="--api-servers=http://116.62.205.90:8080" # pod infrastructure container
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat.com/rhel7/pod-infrastructure:latest" # Add your own!
KUBELET_ARGS=""

2、在node节点安装flannel

  备注:Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址。

  执行命令:yum -y install  flannel

  修改配置文件/etc/kubernetes/flanneld

# Flanneld configuration options  

# etcd url location.  Point this to the server where etcd runs
FLANNEL_ETCD_ENDPOINTS="http://172.16.223.200:2379" # etcd config key. This is the configuration key that flannel queries
# For address range assignment
FLANNEL_ETCD_PREFIX="/coreos.com/network" # Any additional options that you want to pass
#FLANNEL_OPTIONS=""

备注:此处coreos.com这个域名需要和master服务器中etcd存储的域名一致

3、启动node节点的各项服务:

  执行命令:

  systemctl start flanneld

  systemctl start docker

  systemctl start kubelet

  systemctl start kube-proxy

四、安装验证及基本使用

1、验证安装是否成功:

  执行命令:kubernetes get node  可获取当前的可用node服务器,状态为ready

  在浏览器上访问8080域名,因能反馈master apiserver所提供的API列表

2、使用kubernutes进行容器编排:

  1)、首先在node服务器上下载images

  2)、在master服务器上编辑yaml文件,内容如下:

apiVersion: v1
kind: Service
metadata:
name: fred-srv-
spec:
type: NodePort
ports:
- port:
nodePort:
selector:
app: fred-web- apiVersion: v1
kind: ReplicationController
metadata:
name: fred-web-
spec:
replicas:
template:
metadata:
labels:
app: fred-web-
spec:
containers:
- name: test-tomcat
image: daocloud.io/library/tomcat
imagePullPolicy: IfNotPresent
ports:
- containerPort:

  3)、执行命令:kubectl create -f tomcat.yaml

  4)、完成后检查结果如下:

    1)执行kubectl get rc 因能看见创建的rc fred-web-2

    2)执行kubectl get svc 因能看见创建的svc fred-svc-2

    3)执行kubectl get po 因能看见创建的po fred-web-2-XXXX,此时由于replicas参数为1,因此创建了一个po

    4)访问node服务器外网IP:31006,可以访问该po所在的tomcat ROOT页面;

五、其他:

  1、可以使用kubectl delete -f tomcat.yaml 删除创建的资源;

  2、调用journalctl可查看kubenertes自己的错误日志;

  3、初步认识kubernetes的感觉是一个编排docker容器的集群,也就是master节点通过资源文件的设置在node节点上批量创建docker容器;

这些天在一本书上把kubernetes看成是一个微服务的框架,与spring cloud等对标,对此感觉还不能理解;没有看到kubernetes是如何对各微服务暴露出来的业务接口进行管理??

kubernetes 安装备注的更多相关文章

  1. 轻松加愉快的 Kubernetes 安装教程

    轻松加愉快的 Kubernetes 安装教程 马哥Linux运维 2 days ago 作者:无聊的学习者 来源:见文末 在国内安装 K8S,一直是大家很头痛的问题,各种麻烦,关键是还不知道需要下载什 ...

  2. Kuboard Kubernetes安装

    一.简介 Kubernetes 容器编排已越来越被大家关注,然而使用 Kubernetes 的门槛却依然很高,主要体现在这几个方面: 集群的安装复杂,出错概率大 Kubernetes相较于容器化,引入 ...

  3. Docker系列(九)Kubernetes安装

    环境: A.B两天机器A机器IP:192.169.0.104,B机器IP:192.168.0.102,其中A为Master节点,B为Slave节点 操作系统:Centos7 Master与Slave节 ...

  4. kubernetes安装-kubeadm

    系统信息 角色 系统 CPU Core memory master 18.04.1-Ubuntu 4 8G slave 18.04.1-Ubuntu 4 4G 安装前准备(主节点和从节点都需要执行) ...

  5. kubernetes安装-二进制

    主要参考https://github.com/opsnull/follow-me-install-kubernetes-cluster,采用Flanel和docker 系统信息 角色 系统 CPU C ...

  6. 服务网格Istio入门-详细记录Kubernetes安装Istio并使用

    我最新最全的文章都在南瓜慢说 www.pkslow.com,文章更新也只在官网,欢迎大家来喝茶~~ 1 服务网格Istio Istio是开源的Service Mesh实现,一般用于Kubernetes ...

  7. kubernetes安装部署-day01

    一.基础环境的准备: 1.1.安装docker: docker的官网是:https://www.docker.com/ 1.1.1.rpm包安装: 官方下载地址:https://download.do ...

  8. kubernetes安装

    本文主要参考自: https://blog.csdn.net/real_myth/article/details/78719244 还有一份更适合在生产环境使用的超强高可用(多master,nginx ...

  9. kubernetes 安装kong、kong-ingress-controlor

    一.关于kong的详细内容这里不再赘述,可以查看官网. kong升级到1.0以后功能越来越完善,并切新版本的kong可以作为service-mesh使用,并可以将其作为kubernetes的ingre ...

随机推荐

  1. 二十、Hadoop学记笔记————Hive On Hbase

    Hive架构图: 一般用户接口采用命令行操作, hive与hbase整合之后架构图: 使用场景 场景一:通过insert语句,将文件或者table中的内容加入到hive中,由于hive和hbase已经 ...

  2. Thread部分总结以及小例子

    Thread总结:一直以来用thread比较多,一般会在同步以及ui中用到.以下对于经常用作为简单介绍.一 实现方法: 一种直接new thread,另外一种是实现Runnable接口,在创建thre ...

  3. Spring Security 实战:QQ登录实现

    准备工作 1.在 QQ互联 申请成为开发者,并创建应用,得到APP ID 和 APP Key.2.了解QQ登录时的 网站应用接入流程.(必须看完看懂) 为了方便各位测试,直接把我自己申请的贡献出来:A ...

  4. HTML(总结)

    HTML 浏览器内核有哪些 Trident:IE Gecko:Firefox Webkit:Chrome Safari Presto:Opera(投奔Webkit) html5的一些新特性 1. 拖拽 ...

  5. Inception体验之安装

    Inception介绍 MySQL Inception是数据库管理员的工具.它允许DBA构建好的SQL语句,在只读数据集上测试它们,并最终针对生产数据库运行这些SQL语句,并且能够在SQL语句出于某种 ...

  6. 各位情人节快乐, Python帮忙撒狗粮, 我连夜做了这个程序!

    阅读本文大概需要5分钟 码农的情人节 一年一度的情人节要来啦,这个浪漫温馨的节日,走在大街小巷,走在地铁里,走在商场里,走在电影院,姑娘们手里几乎都捧着一束花,心里都是乐滋滋的,一脸幸福的样子,忽然想 ...

  7. dqname_widnows.go

    package nsqd // On Windows, file names cannot contain colons. func getBackendName(topicName, channel ...

  8. appium---【已解决】【Mac】如何查看java的安装路径及JAVA_HOME环境变量的配置

    报错截图:根据提示可以看出,JAVA_HOME的环境变量配置错误,需要重新配置. 1.查看Java版本 打开mac电脑,查看java版本,打开终端Terminal,通过命令查看java的版本 Luck ...

  9. 聚焦“云开发圆桌论坛”,大前端Serverless大佬们释放了这些讯号!

    4月14日,由云加社区举办的TVP&腾讯云技术交流日云开发专场,暨"腾讯云-云开发圆桌论坛"在北京.深圳两地同步举行. 当天下午,一场主题为"基于大前端和node ...

  10. 【ODI】| 数据ETL:从零开始使用Oracle ODI完成数据集成(二)

    前一节已经完成了Oracle数据库和ODI的安装,并已经为ODI在Oracle数据库中创建了两个用户,分别用于存放主资料库数据和工作资料库数据,在ODI中完成主资料库和工作资料库的创建,也分别为其创建 ...