前面两个教程我们已经使用kubekit将K8S搭建起来了。但是,没有将实际使用中需要在K8S上部署我们的容器创建起来的教程,都是耍流氓。所以,经过几番折腾,我回来给自己洗白了。之前一直卡在创建第一个容器上,是因为前面部署的步骤其实是有问题的,只是没有直接显示出来,具体已经在之前的相应博客中进行了更新。

  现在我们来说一下如何使用K8S创建我们的第一个容器。都是在终端上劈里啪啦敲命令的,所以就直接上代码了。[root@bogon ~]# kubectl run my-nginx --image=nginx --replicas=2 --port=80  #创建我们的第一个容器命令。这里应该没有作映射到容器外部访问端口,后续我再加强研究
deployment "my-nginx" created
[root@bogon ~]# kubectl get pods  #查看我们自己创建的容器运行状态
NAME                        READY     STATUS    RESTARTS   AGE
my-nginx-4293833666-9vn38   1/1       Running   0          3m
my-nginx-4293833666-bl672   1/1       Running   0          3m

[root@bogon ~]# kubectl get pods --all-namespaces -owide  #查看k8S所有容器的状态
NAMESPACE     NAME                                    READY     STATUS    RESTARTS   AGE       IP              NODE
default       my-nginx-4293833666-9vn38               1/1       Running   0          5m        10.96.1.5       141node    #这个ip我们后面会用到
default       my-nginx-4293833666-bl672               1/1       Running   0          5m        10.96.1.4       141node
kube-system   etcd-bogon                              1/1       Running   1          22h       192.168.2.140   bogon
kube-system   kube-apiserver-bogon                    1/1       Running   1          22h       192.168.2.140   bogon
kube-system   kube-controller-manager-bogon           1/1       Running   1          22h       192.168.2.140   bogon
kube-system   kube-dns-2425271678-zh6r3               3/3       Running   3          1d        10.96.0.4       bogon
kube-system   kube-flannel-ds-k7qxx                   2/2       Running   1          7m        192.168.2.141   141node
kube-system   kube-flannel-ds-kwmk3                   2/2       Running   3          1d        192.168.2.140   bogon
kube-system   kube-proxy-jm9d3                        1/1       Running   0          7m        192.168.2.141   141node
kube-system   kube-proxy-vz8pr                        1/1       Running   1          1d        192.168.2.140   bogon
kube-system   kube-scheduler-bogon                    1/1       Running   1          22h       192.168.2.140   bogon
kube-system   kubernetes-dashboard-3313488171-2b06x   1/1       Running   1          1d        10.96.0.5       bogon
[root@bogon ~]# kubectl describe pod my-nginx-4293833666-lqvjr  #查看某个容器的运行日志信息,可用于排错。比如说,下面这个报错No nodes are available。于是怀疑K8S添加的node有问题.所以有了下一条命令
Name:        my-nginx-4293833666-lqvjr
Namespace:    default
Node:        <none>
。。。。
Events:
  FirstSeen    LastSeen    Count    From            SubObjectPath    Type        Reason            Message
  ---------    --------    -----    ----            -------------    --------    ------            -------
  2h        9s        589    default-scheduler            Warning        FailedScheduling    No nodes are available that match all of the following predicates:: PodToleratesNodeTaints (1). [root@bogon ~]# kubectl get nodes  #查看K8S的node。之前报错是因为只有一个bogon(这个就是我的K8S服务器本身)。但是在kubekit界面,我明明已经添加了141这个node了,状态也为Deployed。思考再三,看到默认的bogon主机名,突然想到难道是主机名一致,
导致识别不到新加的节点。
只能试试看了,果断重装并修改hostname,不要问我什么不直接修改hostname就行还那么麻烦要重装。原因很简单,因为k8s已经连上去进行安装了,直接修改hostname可能会导致和之前安装的内容冲突等意想不到的情况。保险起见,直接重装是最明智的选择。
毕竟作为一个k8s新手,最好还是不要自己给自己找多余的麻烦了,否则各种报错,一不小心你就会怀疑人生了。果然,修改好主机名后,顺利创建了第一个k8s容器
NAME STATUS AGE VERSION
141node Ready 57m v1.7.2
bogon Ready 2d v1.7.2
[root@bogon ~]# ping 10.96.1.5  #正常操作,先ping一下通不通
PING 10.96.1.5 (10.96.1.5) 56(84) bytes of data.
64 bytes from 10.96.1.5: icmp_seq=1 ttl=63 time=0.520 ms
64 bytes from 10.96.1.5: icmp_seq=2 ttl=63 time=0.475 ms
^C
--- 10.96.1.5 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.475/0.497/0.520/0.031 ms
[root@bogon ~]# curl 10.96.1.5  #访问部署的Nginx服务,可以看到服务正常
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p> <p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p> <p><em>Thank you for using nginx.</em></p>
</body>
</html>

K8S使用入门-创建第一个容器的更多相关文章

  1. ionic 入门创建第一个应用demo

    一.ionic卸载 1.清除旧版本的ionic框架 npm uninstall -g ionic npm uninstall -g cordova npm cache clear npm cache ...

  2. AngularJs轻松入门(一)创建第一个应用

    AngularJs是Google工程师研发的一款JS框架,官方文档中对它的描述是,它是完全使用JavaScript编写的客户端技术,同其他历史悠久的Web技术(HTML,CSS等)配合使用,使得Web ...

  3. Docker 入门 第二部分: 容器

    目录 Docker 入门 第二部分: 容器 先决条件 介绍 你的新开发环境 使用 Dockerfile 定义一个容器 Dockerfile 应用本身 requirements.txt app.py 构 ...

  4. python+Django创建第一个项目

    1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检 ...

  5. 【3】Django创建第一个项目

    天地所以能长且久者,以其不自生,故能长生. --老子<道德经> 写在前面:Django在学习的过程中,我们会参考官方文档,从两部分进行讲解,第一部分主要是一个入门项目的搭建开发,第二部分是 ...

  6. 菜鸟系列k8s——k8s快速入门(1)

    k8s快速入门 1.快速创建k8s集群 参考网站:https://kubernetes.io/docs/tutorials/kubernetes-basics 点击教程菜单 1. Create a C ...

  7. k8s(00)入门知识介绍

    系列文章说明 本系列文章,可以基本算是 老男孩2019年王硕的K8S周末班课程 笔记,根据视频来看本笔记最好,否则有些地方会看不明白 需要视频可以联系我 k8s概念入门 目录 系列文章说明 k8s概念 ...

  8. Kubernetes --(k8s)入门

    k8s 简介: 什么是k8s? Kubernetes (k8s)是Google开源的容器集群管理系统(谷歌内部:Borg).在Docker技术基础上,为容器化的应用提供部署运行.资源调度.服务发现和动 ...

  9. Newbe.Claptrap 框架入门,第一步 —— 开发环境准备

    Newbe.Claptrap 框架依托于一些关键性的基础组件和一些可选的辅助组件.本篇我们来介绍一下如何准备一个开发环境. Newbe.Claptrap 是一个用于轻松应对并发问题的分布式开发框架.如 ...

随机推荐

  1. class [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher

    在搭建SSM项目时报了以下的错误: 06-Oct-2019 11:55:52.109 信息 [RMI TCP Connection(5)-127.0.0.1] org.apache.catalina. ...

  2. python --装饰器内容讲解

    python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数的代码前提下给函数增加新的功能. 3.1 定义装饰器 ...

  3. 项目(1-1)ES32获取mpu9250数据网页交互显示

    教程 https://www.hackster.io/donowak/esp32-mpu9250-3d-orientation-visualisation-467dc1 项目地址 https://gi ...

  4. LeetCode 325. Maximum Size Subarray Sum Equals k

    原题链接在这里:https://leetcode.com/problems/maximum-size-subarray-sum-equals-k/ 题目: Given an array nums an ...

  5. 使用nodegui 开发高性能的跨平台桌面端应用

    nodegui 是基于qt + nodejs 的跨平台桌面开发方案,官方同时也提供了很不错的文档 简单使用 使用官方的starter clone 代码 git clone https://github ...

  6. Xml与Map之间的相互转换

    一.(单层)xml转换为map /** * XML格式字符串转换为Map * * @param xml XML字符串 * @return XML数据转换后的Map * @throws Exceptio ...

  7. [Java] Spring boot2 整合 Thymeleaf 后 去除模板缓存

    Spring boot2 整合 Thymeleaf 后 去除模板缓存 网上好多文章只是简单粗暴的说,在 application.properties  做如下配置即可: #Thymeleaf cach ...

  8. Java程序设计学习知识点总结

    Java程序设计学习知识点总结 Java语言简单,面向对象,分布式,解释性,健壮,安全与系统无关,可移植,高性能,多线程,动态语言. 什么是框架 可以认为是某种应用的半成品,就是一组组件用来完善自己的 ...

  9. linux高性能服务器编程 (八) --高性能服务器程序框架

    第八章 高性能服务器编程框架 这一章主要介绍服务器的三个主要模块: I/O处理单元.逻辑单元.存储单元.另外服务器的模型有:C/S模型和P2P模型.虽然服务器模型比较多,但是其核心框架都一样,只是在于 ...

  10. TDD(测试驱动开发)

    什么是 TDDTDD 有广义和狭义之分,常说的是狭义的 TDD,也就是 UTDD(Unit Test Driven Development).广义的 TDD 是 ATDD(Acceptance Tes ...