kubernetes官网:https://kubernetes.io/docs/home/

也是怀着不情愿的心情,要开始kubernetes了,本身是非常热爱技术,尤其是容器技术,可能是最近有点累和懈怠,变得有些懒惰了。

每每这种情况,我都会去智联招聘搜一下docker。。。。薪资很高,看了具体的招聘要求,差距很大很大,感觉好累啊。只能说学海无涯,回头可能是岸。。。。话不多说了。开始吧

跑起来~~~

https://kubernetes.io/docs/tutorials/kubernetes-basics/

左面是教程菜单。

我们先来创建一个kubernetes集群,感受一下:

显示以下操作界面:

很热情的开始界面

左边是操作说明,右边是terminal,命令终端口

根据操作说明,我们在terminal中执行minikube start,然后执行kubectl get nodes,这样就创建好了一个单节点的kubernetes集群

集群的唯一节点为host01,需要注意的是当前执行命令的地方并不是host01.我们是在通过kubernetes的命令行工具远程管理集群

heapster,kubernetes-dashboard都是集群中运行的服务

集群就这么创建好了

kubernetes核心功能

部署应用:

kubectl run kubernetes-bootcamp  --image=docker.io/jocatalin/kubernetes-bootcamp:v1   --port=8080

注:显示的有点不正常

这里的deployment是kubernetes的一个术语,可以理解为应用。

kubernetes还有一个重要的术语:Pod

pod是容器的集合,通常会将紧密相关的一组容器放到一个POd中,同一个Pod中的所有容器共享IP地址和port空间,也就是说他们在一个newwork namespace中

Pod是kubernetes调度的最小单位,同一Pod中的容器始终被一起调度。

运行kubectl get pods

kubernetes-bootcamp-390780338-rsrzj   就是应用的pod

访问应用:

默认情况下,所有pod只能在集群内部访问。对于上面这个例子,要访问应用只能直接访问容器的8080端口。为了能从外部访问应用,我们需要将容器的8080端口映射到节点的端口。

执行如下命令:

kubectl expose deployment/kubernetes-bootcamp --type="NodePort" --port 8080

执行kubectl get services可以查看应用被映射到那个端口

这里有两个service

kubernetes是默认的service,暂时不考虑

kubernetes-bootcamp是我们应用的service,8080端口已经映射到host01的31068端口,端口号是随机分配的,可以执行如下命令访问应用:

curl host01:31068

Scale应用:

默认情况下只运行一个副本,可以通过kubectl get deployments

执行以下命令将副本数增加到3个:

kubectl scale deployments/kubernetes-bootcamp --replicas=3

通过curl访问应用:

可以看到每次请求发送到不同的pod,三个副本轮询处理,这样就实现了负载均衡

要scale down也很方便,执行命令:

滚动更新:

当前应用使用的image版本为v1,执行如下命令将其升级到v2:

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2

如果要退回v1版本也很容易,执行kubectl rollout undo

验证版本已经回退到v1

centos7下kubernetes(1。kubernetes---start)的更多相关文章

  1. Centos7下yum安装kubernetes

    一.前言    Kubernetes 是Google开源的容器集群管理系统,基于Docker构建一个容器的调度服务,提供资源调度.均衡容灾.服务注册.动态扩缩容等功能套件,目前centos yum源上 ...

  2. [Kubernetes]关于 Kubernetes ,你想要的,都在这儿了

    陆陆续续,关于 Kubernetes 写了有 20+ 篇文章了. 今天这篇文章来一个整合,从实践到理论,可以按需查看(我是按照博客发表时间来排序的,如果后续有想要更新的内容,也会及时更新到这篇文章中) ...

  3. centos7下kubernetes(3。部署kubernetes)

    环境:三个centos7 K8s2是Master;K8s1是node1:K8s3是node2 官方文档:https://kubernetes.io/docs/setup/independent/ins ...

  4. [Kubernetes]CentOS7下Etcd集群搭建

    Etcd简要介绍 Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息 Etcd构建自身高可用集群主要有三种形式: ①静态发现: 预先已知 Etcd 集 ...

  5. centos7.5下kubeadm安装kubernetes集群安装

    文章是按https://blog.csdn.net/Excairun/article/details/88962769,来进行操作并记录相关结果 版本:k8s V14.0,docker-ce 18.0 ...

  6. [Kubernetes]CentOS7下搭建Harbor仓库

    环境依赖: Harbor仓库需要环境:Python 2.7或以上版本,Docker 1.10或以上,Docker Compose 1.6.0或以上. CentOS7自带Python,所以不需要安装. ...

  7. Centos7 使用 kubeadm 安装Kubernetes 1.13.3

    目录 目录 什么是Kubeadm? 什么是容器存储接口(CSI)? 什么是CoreDNS? 1.环境准备 1.1.网络配置 1.2.更改 hostname 1.3.配置 SSH 免密码登录登录 1.4 ...

  8. centos7使用kubeadm安装kubernetes集群

    参考资料:官方文档 一.虚拟机安装 配置说明: windows下使用vbox,centos17.6 min版,kubernetes的版本是1.14.1, 安装如下三台机器: 192.168.56.15 ...

  9. centos7使用kubeadm搭建kubernetes集群

    一.本地实验环境准备 服务器虚拟机准备 IP CPU 内存 hostname 192.168.222.129 >=2c >=2G master 192.168.222.130 >=2 ...

  10. 从centos7镜像到搭建kubernetes集群(kubeadm方式安装)

    在网上看了不少关于Kubernetes的视频,虽然现在还未用上,但是也是时候总结记录一下,父亲常教我的一句话:学到手的东西总有一天会有用!我也相信在将来的某一天会用到现在所学的技术.废话不多扯了... ...

随机推荐

  1. 12. ReadWriteLock 读写锁

    package com.gf.demo11; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent. ...

  2. MySQL技巧(三)运算符与函数

  3. Java8新特性-Lambda表达式是什么?

    目录 前言 匿名内部类 函数式接口 和 Lambda表达式语法 实现函数式接口并使用Lambda表达式: 所以Lambda表达式是什么? 实战应用 总结 前言 Java8新特性-Lambda表达式,好 ...

  4. 9.并发_EJ

    第66条: 同步访问共享可变的数据 所谓同步指的发出一个调用时,如果没有得到结果就不返回,直到有结果后再返回.另外相对应的是异步,指的是发出一个调用时就立即返回而不在乎此时有没有结果. 同步和异步关注 ...

  5. 推荐好用的JavaScript模块

    译者按: 作者将自己常用的JavaScript模块分享给大家. 原文:

  6. css3 简易时钟

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. CSS3 - 盒子的 box - size

    两个参数: border-box和content-box <!DOCTYPE html> <html lang="en"> <head> < ...

  8. 微信小程序心得

    首先从官方文档给的框架说起,微信小程序官方文档给出了app.js, app.json, app.wxss. 先从这三个文件说起. - app.js 这个文件是整个小程序的入口文件,开发者的逻辑代码在这 ...

  9. iOS ---------- 获取设备的各种信息

    一.目录结构: 获取屏幕宽度与高度 获取设备版本号 获取iPhone名称 获取app版本号 获取电池电量 获取当前系统名称 获取当前系统版本号 获取通用的唯一识别码UUID 获取当前设备IP 获取总内 ...

  10. Android为TV端助力 帧动画

    首先在res/drawable/name1.xml/定义一组图片集合: <?xml version="1.0" encoding="utf-8"?> ...