K8S使用入门-创建第一个容器

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

  现在我们来说一下如何使用K8S创建我们的第一个容器。都是在终端上劈里啪啦敲命令的,所以就直接上代码了。[[email protected] ~]# kubectl run my-nginx --image=nginx --replicas=2 --port=80  #创建我们的第一个容器命令。这里应该没有作映射到容器外部访问端口,后续我再加强研究
deployment "my-nginx" created
[[email protected] ~]# 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

[[email protected] ~]# kubectl get pods --all-namespaces -owide  #查看k8S所有容器的状态NAMESPACE     NAME                                    READY     STATUS    RESTARTS   AGE       IP              NODEdefault       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       141nodekube-system   etcd-bogon                              1/1       Running   1          22h       192.168.2.140   bogonkube-system   kube-apiserver-bogon                    1/1       Running   1          22h       192.168.2.140   bogonkube-system   kube-controller-manager-bogon           1/1       Running   1          22h       192.168.2.140   bogonkube-system   kube-dns-2425271678-zh6r3               3/3       Running   3          1d        10.96.0.4       bogonkube-system   kube-flannel-ds-k7qxx                   2/2       Running   1          7m        192.168.2.141   141nodekube-system   kube-flannel-ds-kwmk3                   2/2       Running   3          1d        192.168.2.140   bogonkube-system   kube-proxy-jm9d3                        1/1       Running   0          7m        192.168.2.141   141nodekube-system   kube-proxy-vz8pr                        1/1       Running   1          1d        192.168.2.140   bogonkube-system   kube-scheduler-bogon                    1/1       Running   1          22h       192.168.2.140   bogonkube-system   kubernetes-dashboard-3313488171-2b06x   1/1       Running   1          1d        10.96.0.5       bogon[[email protected] ~]# kubectl describe pod my-nginx-4293833666-lqvjr  #查看某个容器的运行日志信息,可用于排错。比如说,下面这个报错No nodes are available。于是怀疑K8S添加的node有问题.所以有了下一条命令Name:        my-nginx-4293833666-lqvjrNamespace:    defaultNode:        <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).

[[email protected] ~]# kubectl get nodes  #查看K8S的node。之前报错是因为只有一个bogon(这个就是我的K8S服务器本身)。但是在kubekit界面,我明明已经添加了141这个node了,状态也为Deployed。思考再三,看到默认的bogon主机名,突然想到难道是主机名一致,导致识别不到新加的节点。只能试试看了,果断重装并修改hostname,不要问我什么不直接修改hostname就行还那么麻烦要重装。原因很简单,因为k8s已经连上去进行安装了,直接修改hostname可能会导致和之前安装的内容冲突等意想不到的情况。保险起见,直接重装是最明智的选择。毕竟作为一个k8s新手,最好还是不要自己给自己找多余的麻烦了,否则各种报错,一不小心你就会怀疑人生了。果然,修改好主机名后,顺利创建了第一个k8s容器NAME      STATUS    AGE       VERSION141node   Ready     57m       v1.7.2bogon     Ready     2d        v1.7.2[[email protected] ~]# 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 ms64 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 1000msrtt min/avg/max/mdev = 0.475/0.497/0.520/0.031 ms[[email protected] ~]# 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 andworking. 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>

原文地址:https://www.cnblogs.com/biaopei/p/12052168.html

时间: 2024-10-20 21:49:59

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

(四)运行第一个容器

创建第一个容器: 创建一个容器很容易,我们使用docker run命令就可以完成,如下图: docker run -i -t centos:6.6 /bin/bash run命令是docker命令中的一个子命令,作用是运行一个容器 参数 说明 -i 保持容器中的STDIN是打开的,也就是标准输入 -t 为容器开启一个伪TTY终端 centos:6.6 这个是镜像名称,这里适用的是官方镜像,centos是仓库名称,6.6是标签.一个仓库可能有多个镜像,如果不指定具体标签(TAG),则默认会适用la

从零开始入门 K8s | 理解 RuntimeClass 与使用多容器运行时

作者 | 贾之光??阿里巴巴高级开发工程师 本文整理自<CNCF x Alibaba 云原生技术公开课>第 30 讲,点击直达课程页面.关注"阿里巴巴云原生"公众号,回复关键词"入门",即可下载从零入门 K8s 系列文章 PPT. 一.RuntimeClass 需求来源 容器运行时的演进过程 我们首先了解一下容器运行时的演进过程,整个过程大致分为三个阶段: ? 第一个阶段:2014 年 6 月 Kubernetes 正式开源,Docker 是当时唯一的.

【3】Django创建第一个项目

天地所以能长且久者,以其不自生,故能长生. --老子<道德经> 写在前面:Django在学习的过程中,我们会参考官方文档,从两部分进行讲解,第一部分主要是一个入门项目的搭建开发,第二部分是核心的讲解.过程中可能会有一些配置或者技术点不会明确的讲解,入门项目要求是能写出代码.能跟着文档写出项目,能了解项目即可.其余的后续章节中会有详细介绍,此时~不用恐惧不用害怕不用担心,某些细节问题我们暂时可以不求甚解! 本节内容 项目结构了解 创建第一个项目 运行并访问我们的项目 1. Django创建项目的

Java入门记(五):容器关系的梳理(下)——Map

注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见Map的接口和实现.与Collection相比,继承关系简单不少. 一.Map接口和AbstractMap抽象类 Map接口除了增加映射.根据key获取value.判断映射中的key或value是否存在.删除映射的基本方法外,还包含了返回包含所有key的Set.包含所有value的collection

python+Django创建第一个项目

1.首先搭建好环境 1.1 安装pyhton,Linux系统中,python是系统自带的所以就不用安装 1.2 安装Django框架 使用pip安装: pip install django 1.3 检查是否安装好 1.4 查看Django的管理工具---django-admin.py命令 2. 创建第一个项目 HelloWorld: 项目的容器. manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互. HelloWorld/__init__.py: 一个空

docker入门之简单的容器使用

docker入门之简单的容器使用 首发:arppinging 一.运行容器 1)搜索和下载镜像 在之前我们打过一个比分,容器就像vmware workstation一样,而镜像类似于一个OVA文件,如果我们想让容器变得有意义,那镜像是我们必不可少的一个"货物". 跟OVA文件类似,如果我们基于某一个镜像创建容器,那么在容器里面的任何操作不会被写入原本的镜像,除非对所有的操作进行一次镜像重构,把所有操作的结果导出形成一个新的镜像. 1.1 搜索需要的镜像 格式:docker search

【VMCloud云平台】SCCM(五)创建第一个集合

继上一篇云平台完成SCCM部署篇之后,SCCM篇正式开始,今天将开始介绍SCCM创建第一个集合,集合作用跟GPO中的作用域是一样的,即有时候你需要对不同范围的机器进行分发操作或其他操作时则需要把范围规定起来(紫色为完成实施,红色为实施中): 1. 打开管理控制台,定位点客户端符合性: 2. 在设备集合上点击右键选择创建设备集合: 3. 输入新集合名称,并选择目标机器所在的集合: 4. 点击下一步,新建成员规则,选择直接规则: 5. 输入资源类型与规则: 6. 接着就会出现筛选出来的值,进行勾选:

Android使用AndEngine创建第一个程序

首先要把andengine.jar复制到libs文件夹里 01 package com.hu.anden; 02   03 import org.anddev.andengine.engine.Engine; 04 import org.anddev.andengine.engine.camera.Camera; 05 import org.anddev.andengine.engine.options.EngineOptions; 06 import org.anddev.andengine.

运行第一个容器 - 每天5分钟玩转容器技术(4)

为了让大家对容器有个感性认识,我们将尽快让一个容器运行起来. 首先我们需要搭建实验环境. 环境选择 容器需要管理工具.runtime 和操作系统,我们的选择如下: 管理工具 - Docker Engine因为 Docker 最流行使用最广泛. runtime - runcDocker 的默认 runtime 操作系统 - Ubuntu虽然存在诸如 CoreOS 的容器 OS,因考虑到我们目前处于初学阶段,选择大家熟悉的操作系统更为合适.等具备了扎实的容器基础知识后再使用容器 OS 会更有利. 安