安装一个单机版的K8S

1、关闭防火墙firewalld
2、安装etcd和kubernetes
yum install -y etcd kubernetes(会自动安装docker)
3、修改配置文件
修改docker配置文docker
修改为
OPTIONS='--selinux-enabled=false --insecure-registry gcr.io'
修改kubernetes配置文件
vi /etc/kubernetes/apiserver
KUBE_ADMISSION_CONTROL参数中删除ServiceAccount
4、按顺序启动服务
systemctl start etcd
systemctl start docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy
检查状态
systemctl status etcd
systemctl status docker
systemctl status kube-apiserver
systemctl status kube-controller-manager
systemctl status kube-scheduler
systemctl status kubelet
systemctl status kube-proxy

一个单机版本的kuberneted就搭建完毕了

启动一个mysql服务

1、为MySQL服务创建一个RC定义文件:mysql-rc.yaml。RC(Replication Controller)定义文件中有3个关键信息:

  • 目标Pod的定义。
  • 目标Pod需要运行的副本数量(Replicas)
  • 要监控的目标Pod的标签(Label),Label是Service和Pod之间的纽带
[root@router ljy]# more mysql-rc.yaml
apiVersion: v1
kind: ReplicationController #副本控制器RC
metadata:
name: mysql #RC的名称,全局唯一
spec:
replicas: 1 #Pod副本的期待数量
selector:
app: mysql #符合目标的Pod拥有此标签
template: #根据此模板创建Pod的副本(实例)
metadata:
labels:
app: mysql #Pod副本拥有的标签,对应RC的Selector
spec:
containers: #Pod内容器的定义部分
- name: mysql #容器的名称
image: hub.c.163.com/library/mysql #容器对应的Docker image
ports:
- containerPort: 3306 #容器应用监听的端口号
env: #注入容器内的环境变量
- name: MYSQL_ROOT_PASSWORD
value: "123456"

2、创建好mysql-rc.yaml后,在master节点使用kubectl命令将它发布到k8s集群中。

kubectl create -f mysql-rc.yaml

使用kubectl命令查看刚刚创建的RC:

使用下面命令查看Pod的创建情况:

3、创建关联service

我们创建一个与之关联的Kubernetes Service-MySQL的定义文件:mysql-svc.yaml

apiVersion: v1
kind: Service #表明是K8s Service
metadata:
name: mysql #Service的全局唯一名称
spec:
ports:
- port: 3306 #Service提供服务的端口号
selector: #Service对应的Pod拥有这里定义的标签
app: mysql 复制代码

运行kubectl命令,创建service

kubectl create -f mysql-svc.yaml

查看刚刚创建的service

kubectl get svc

注意到MySQL服务被分配到了一个值为10.254.46.214的Cluster IP地址,这是一个虚地址,随后,k8s集群中其他新创建的Pod就可以通过Service的Cluster IP+端口号3306来连接和访问它了

启动一个web服务

1、先拉取一个镜像

docker pull kubeguide/tomcat-app:v1

2、创建对应的RC文件myweb-rc.yaml,内容如下

apiVersion: v1
kind: ReplicationController
metadata:
name: myweb
spec:
replicas: 5 #Pod副本期待数量为5
selector:
app: myweb
template:
metadata:
labels:
app: myweb
spec:
containers:
- name: myweb
image: docker.io/kubeguide/tomcat-app:v1
ports:
- containerPort: 8080
env:
- name: MYSQL_SERVICE_HOST
value: "mysql"
- name: MYSQL_SERVICE_PORT
value: "3306"

然后通过kubectl create命令完成RC的创建和验证工作:

kubectl create -f myweb-rc.yaml
kubectl get rc
kubectl get pods

在RC中声明了5个Pod期待的数量,现在都已经建立并运行起来了

3、创建对应的Service

创建对应的Service,以下是完整的yaml定义文件(myweb-svc.yaml)

apiVersion: v1
kind: Service
metadata:
name: myweb
spec:
type: NodePort
ports:
- port: 8080
nodePort: 30001
selector:
app: myweb

type=NodePort和nodePort=30001的两个属性,表明此Service开启了NodePort方式的外网访问模式。

运行kubectl create命令进行创建:

kubectl create  -f myweb-svc.yaml

查看一下

kubectl get services

k8s应用01-----入门实例的更多相关文章

  1. Python学习--01入门

    Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...

  2. SpringMVC详解(三)------基于注解的入门实例

    前两篇博客我们讲解了基于XML 的入门实例,以及SpringMVC运行的详细流程.但是我们发现基于 XML 的配置还是比较麻烦的,而且,每个 Handler 类只能有一个方法,在实际开发中肯定是不可能 ...

  3. SpringMVC 框架系列之初识与入门实例

    微信公众号:compassblog 欢迎关注.转发,互相学习,共同进步! 有任何问题,请后台留言联系! 1.SpringMVC 概述 (1). MVC:Model-View-Control Contr ...

  4. SpringMVC系列之(一) 入门实例

    Spring MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了.Spring MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也 ...

  5. jquery实战第一讲---概述及其入门实例

    就在5月28号周四下午五点的时候,接到xxx姐姐的电话,您是xxx吗?准备一下,周五上午八点半去远洋面试,一路风尘仆仆,颠颠簸簸,由于小编晕车,带着晕晕乎乎的脑子,小编就稀里糊涂的去面试了,温馨提醒, ...

  6. Struts1入门实例(简单登录)

    Struts1入门实例(简单登录) 现在开始加入公司的核心项目,但由于项目开发比较早,所以使用的技术不是很新潮,前台用的还是struts1. 虽然不是什么新技术,但仍可以从中学到好多东西的.花了一个晚 ...

  7. 转载 SpringMVC详解(三)------基于注解的入门实例

    目录 1.在 web.xml 文件中配置前端处理器 2.在 springmvc.xml 文件中配置处理器映射器,处理器适配器,视图解析器 3.编写 Handler 4.编写 视图 index.jsp ...

  8. React 入门实例教程(转载)

    本人转载自: React 入门实例教程

  9. struts入门实例

    入门实例 1  .下载struts-2.3.16.3-all  .不摆了.看哈就会下载了. 2  . 解压  后 找到 apps 文件夹. 3.    打开后将 struts2-blank.war   ...

  10. Vue.js2.0从入门到放弃---入门实例

    最近,vue.js越来越火.在这样的大浪潮下,我也开始进入vue的学习行列中,在网上也搜了很多教程,按着教程来做,也总会出现这样那样的问题(坑啊,由于网上那些教程都是Vue.js 1.x版本的,现在用 ...

随机推荐

  1. 如何对Nginx日志文件进行切割保存

    日积月累下,日志文件会越来越大,日志文件太大严重影响服务器效率,须要定时对日志文件进行切割. 切割的方式有按月切割.按天切割.按小时切割,一般都是按天切割. 那么如何进行切割呢? 思路: 创建日志文件 ...

  2. 16.SpringMVC核心技术-文件上传

    上传单个文件 1.定义具有文件上传功能的页面 index.jsp,其表单的设置需要注意,method 属性为 POST, enctype 属性为 multipart/form-data.另外,需要注意 ...

  3. python3 中的cls和self的区别 静态方法和类方法的区别

      一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法. 而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用. 这有利于组织代码,把某 ...

  4. Win7系统不能拖动文件夹的问题怎么解决?

    一般情况下,如果我们想要在电脑中移动文件夹,可以采用剪切复制粘贴或者按住鼠标左键拖动的方式来实现,但有些Win7系统用户反映文件夹会出现不能移动的情况,这是怎么回事呢?下面好系统U盘启动就为大家介绍一 ...

  5. css优化和重排

    转:http://caibaojian.com/css-reflow-repaint.html

  6. ak-1

    最近研究ak,网上也有很多这方面的资料,就不重复叙述了,本次记录就是自己在做适应时的一些记录. 本次环境 中标麒麟  金蝶apusic 人大金仓 先说说东西从哪下载怎么来的 基本都是通过官网打电话申请 ...

  7. vue-重要方法使用

    标签属性router-link-exact-active: 当页面正在方位是触发router-link-exact-active 标签router-link to= 使用a标签页面就会跳转,就不是单页 ...

  8. Python3-元祖

    # Tuple(元组) # 元组(tuple)与列表类似,不同之处在于元组的元素不能修改.元组写在小括号(())里,元素之间用逗号隔开. # 元组中的元素类型也可以不相同 tuple = ('abcd ...

  9. ACM-ICPC 2017 西安赛区现场赛 A. XOR(线性基+线段树)

    题目链接:https://nanti.jisuanke.com/t/20749 参考题解:https://blog.csdn.net/Lee_w_j__/article/details/8266418 ...

  10. Gson/Jackson/FastJson工具类

    import java.util.ArrayList; import java.util.List; import java.util.Map; import com.google.gson.Gson ...