安装一个单机版的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. RobHess的SIFT代码解析步骤三

    平台:win10 x64 +VS 2015专业版 +opencv-2.4.11 + gtk_-bundle_2.24.10_win32 主要参考:1.代码:RobHess的SIFT源码 2.书:王永明 ...

  2. 高级IO——文件锁

    文件锁也被称为记录所,文件锁如果深讲的话,内容不少(比如文件锁最起码分为了建议锁和强制性锁,暂时挖坑,后面填). 文件锁作用 顾名思义,就是用来保护文件数据的.当多个进程共享读写同一个文件时,为了不让 ...

  3. 设计模式之Template Method

    1.设计模式的使用场景 模板方法模式(Template Method) 解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1…n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承 ...

  4. 通过shell发送邮件

    安装mailx CentOS 7自带有mailx软件包, 有/usr/bin/mail命令, 配置文件为/etc/mail.rc. 如果没有软件包, 可以安装 CentOS/Fedora yum in ...

  5. Codeforces Round #586 (Div. 1 + Div. 2) E. Tourism

    链接: https://codeforces.com/contest/1220/problem/E 题意: Alex decided to go on a touristic trip over th ...

  6. openstack使用

    管理员登陆: 身份管理--->创建项目 身份管理--->创建用户(角色:_member_)(管理指定项目) 管理员--->云主机类型--->创建云主机 管理员--->镜像 ...

  7. vue项目实现详情页后退缓存之前的数据

    vue项目实现详情页后退缓存之前的数据 2019年02月19日 14:54:57 不想写代码的程序员 阅读数:244   一.需要缓存的内容: 1.后退缓存条件查询的数据 2.后退缓存分页信息 二.实 ...

  8. 洛谷——P2058 海港

    题目传送 由于于题目保证输入的ti是递增的,所以发现当我们统计完一艘船的答案后,这个答案多少会对下一艘船的答案有贡献.同时还发现如果对每个艘船都记录他的乘客在整个数据出现的所有国籍中相应出现的次数,在 ...

  9. nohup 的含义

    )./a.sh &,&对SIGINT 信号免疫程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程.Ctrl + C,a ...

  10. 最新版Google Chrome 自动加载flash插件的方法

    我们在用Selenium做自动化测试时,有时候需要浏览器自动加载flash插件,69以前的谷歌浏览器,可以通过加载属性的方法自动运行flash插件,如下: prefs={ "profile. ...