二进制安装kubernetes1.14.1初次尝试-02

查看资源类型

查看多少个控制器

kubectl  get deploy 查看多少个控制器 = kubectl  get deployments
创建名称空间资源  namespace数据集群资源
kubectl create -h
[[email protected] .ssh]#  kubectl  create namespace develop #创建develop名称资源空间
namespace/develop created
[[email protected] .ssh]#  kubectl  create namespace testing
namespace/testing created
[[email protected] .ssh]#  kubectl  create namespace prod
[[email protected] .ssh]#  kubectl  get ns #查看资源类型

删除名称空间

[[email protected] .ssh]# kubectl  delete ns prod
= [[email protected] .ssh]# kubectl  delete ns/testing

查看空间信息

[[email protected] .ssh]# kubectl  get  ns
[[email protected] .ssh]# kubectl  get  ns/testing
[[email protected] .ssh]# kubectl  get ns/develop -o yaml 输出yaml信息
[[email protected] .ssh]# kubectl  get ns/develop -o wide 长格式展示
[[email protected] .ssh]# kubectl  get ns/develop -o json 输出json格式
[[email protected] .ssh]# kubectl  get ns/default -o yaml

输出名称空间的描述信息

[[email protected] .ssh]# kubectl  describe ns/default #当前状态信息

创建一个容器镜像

[[email protected] .ssh]# kubectl  create deployment nginx-dep --image=ngnx:1.14-alpine
= [[email protected] .ssh]# kubectl  create deploy nginx-dep --image=ngnx:1.14-alpine

显示所有资源

[[email protected] .ssh]# kubectl  get all

显示pods

[[email protected] .ssh]# kubectl  get pods

删除pods

kubectl  delete pods/nginx-7db9fccd9b-b7cxl 删除会自动创建一个新的pods
强制删除: 需要删除对应的deploy
[[email protected] .ssh]# kubectl  get deployments && [[email protected] .ssh]# kubectl  delete  deployments

进入pods

kubectl  exec -it pods

创建一个nginx的pods

请求方式 clients->serverice->pods
防火墙: DNAT -d 192.168.1.2 --dport 80 -json DNAT --to-destination 192.168.1.2:80
创建:一个service
[[email protected] ~]# kubectl create service clusterip -h查看帮助

创建一个nginx pod
 [[email protected] ~]# kubectl  create deployment nginx-dep --image=nginx
查看pods
kubectl  get pods -o wide  #详细信息
kubectl  get pods -o json   #json格式展示信息
kubectl  get pods -o yaml  #yaml信息

访问测试

为nginx-dep创建一个service

service作为负载均衡和代理后端服务器,作为一个请求接口  相当于ADNAT -d --port 代理到后端的pods(由于当你删除一个pod的时候,kube会给你自动创建一个新的pod,但是ip地址可能是改变的,设置一个service会自动发现你这新的pod 并负载到新的pod)
[[email protected] ~]# kubectl  create service clusterip nginx-dep --tcp=80:80


扩缩容 pods

 [[email protected] ~]# kubectl  scale -h
     例如: 我扩充nginx-dep为三个
[[email protected] ~]# kubectl  get deploy -o wide
     NAME        READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES   SELECTOR
     nginx       3/3     3            3           26h   nginx        nginx    run=nginx
     nginx-dep   1/1     1            1           25h   nginx        nginx    app=nginx-dep
[[email protected] ~]# kubectl  scale  --replicas=3 deployment nginx-dep
     deployment.extensions/nginx-dep scaled
[[email protected] ~]# kubectl  get deploy -o wide
          NAME        READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES   SELECTOR
          nginx       3/3     3            3           26h   nginx        nginx    run=nginx
          nginx-dep   3/3     3            3           25h   nginx        nginx    app=nginx-dep

这时候:service 负载应该也变更为 三个节点

创建nodeport的service

[[email protected] cfg]# kubectl  create service nodeport nginx --tcp=88:80

这样可以访问任何一个宿主机 实现访问对用的pods

也可以访问service实现负载访问pods(master节点没有添加为node 所以只能到个个node节点访问)

k8s管理pods方式

 deployment->nginx deploy -> nginx pods ->services -> nginx services -> client
会自动生成iptables的nat规则
  同时 会在iptables创建NAT的规则
  [[email protected] ~]# iptables -t nat -vnL

api资源类型

.

上图可以看出 所有的操作都需PAI server交互 所有的请求 操作都需要经过API server,能操作etcd数据的只有API server服务器,其他组件是不能直接操作etcd的, 整个集群的所有定义的状态信息和切换信息都在etcd存储 所以etcd一旦崩溃,所有的数据就会丢失,所以etcd要定期备份和高可用。

apiserver

 [[email protected] cfg]# kubectl  api-versions #查看api-version版本 多个版本可以共存
 api接口中可以多个组合为一个逻辑组合,每个组合可以单独进化

资源对象管理方式

陈述式命令: run expose  delete和get等命令,他们可以指直接用于k8s系统的活动对象,简单易用,但不支持代码复用,修改复审以及审核日志等功能。要依赖资源配置文件中,也被称之为资源清单
    陈述式对象配置
  生命式对象配置
    例子: 创建一个ns的yaml文件
     可以根据:kubectl get ns default -o yaml --export 显示yaml查看
     [[email protected] ~]# cat develop_ns.yaml
    apiVersion: v1
    kind: Namespace
    metadata:
      creationTimestamp: null
      name: develop
  [[email protected] ~]# kubectl  create -f develop_ns.yaml  #指定yaml创建ns

.
[[email protected] ~]# kubectl  apply  -f develop_ns.yaml   #允许重复执行  可以指定整个目录创建
    = [[email protected] ~]# kubectl  create -f develop_ns.yaml  #重复执行会报错  不可以指定整个目录创建
    创建一个pods的配置文件
    [[email protected] ~]# kubectl  get pods nginx-7db9fccd9b-dq9wz -o yaml --export > nginx_pods.yaml
    使用上面的当作模板,进行修改为适合自己的yaml文件
[[email protected] ~]# cat nginx_pods.yaml
   apiVersion: v1
   kind: Pod
   metadata:
     creationTimestamp: null
     name: pod-demo
     namespace:  develop
   spec:
     containers:
     - image: nginx
       imagePullPolicy: IfNotPresent
       name: nginx-demo
       resources: {}
     dnsPolicy: ClusterFirst
     enableServiceLinks: true
     priority: 0
     restartPolicy: Always
     schedulerName: default-scheduler
     securityContext: {}
查看当前新建立的pods
 [[email protected] ~]# kubectl  apply -f nginx_pods.yaml
        pod/pod-demo created
 [[email protected] ~]# kubectl  get pods -n develop -o wide
      NAME       READY   STATUS    RESTARTS   AGE     IP            NODE           NOMINATED NODE   READINESS GATES
      pod-demo   1/1     Running   0          2m44s   172.17.89.4   192.168.1.73   <none>           <none>

查看各个yaml配置清单

   [[email protected] ~]# kubectl  explain pods|svc|ns.....

查看各个yaml清单的子模块

   [[email protected] ~]# kubectl  explain pods.metadata

自动一个pods的yaml

  [[email protected]aster01 ~]# cat create_pods.yaml
       apiVersion: v1
       kind:  Pod
       metadata:
         name: pod-demo
         namespace: prod
       spec:
         containers:
         - name: centos
           image: centos:latest
           imagePullPolicy: IfNotPresentNotPresent
           command: ["/bin/sh","-c","sleep 10"],"-c","sleep 10"]
         - name: create-pods2
           image: nginx  

            command:
     - /bin/sh
     - -c
     - "sleep 100"和下面的command效果一样
             command: ["/bin/sh","-c","sleep 10"]
    [[email protected] ~]# kubectl  apply -f create_pods.yaml
[[email protected] ~]#  kubectl  get pods -n prod -o wide
 NAME       READY   STATUS    RESTARTS   AGE   IP            NODE           NOMINATED NODE   READINESS GATES
 pod-demo   2/2     Running   2          56s   172.17.89.5   192.168.1.73   <none>           <none>

进入容器访问

默认访问 启动的
[[email protected] ~]#  kubectl  exec pod-demo   -n prod -it -- /bin/bash
指定访问容器pods
  [[email protected] ~]#  kubectl  exec pod-demo -c bbos  -n prod -it -- /bin/bash
   -c, --container=‘‘: Container name. If omitted, the first container in the pod will be chosen
   -i, --stdin=false: Pass stdin to the container
   -t, --tty=false: Stdin is a TTY

原文地址:https://blog.51cto.com/9025736/2397755

时间: 2024-11-02 23:52:45

二进制安装kubernetes1.14.1初次尝试-02的相关文章

二进制安装kubernetes1.14.1-pod配置清单之客户端访问方式03

查看pod配置清单 参考: (https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.14/) [[email protected] ~]# kubectl explain pods.metadata.[.........] [[email protected] ~]# kubectl explain pods.spec.[........] 开放端口+ip地址访问:此处的一旦绑定,只能指定的ip或者端口访问 [[emai

二进制安装kubernetes1.14.1-pod配置清单之资源注解04

资源注解 annotate 注解也是 键值 类型的数据,但是不能用于被标签选择器用于标签和挑选对象,仅仅用于提供 资源元数据接口. 注解中的元数据不受字符限制,键值前缀可以很长,键值和键不能超过63个字符,但是字符可以为结构化或者非结构化的形式(可以是 数组或者数字等 ),也支持使用在标签中,但是禁止使用其他字符. 在新版本中,为一些资源引入新字段时,常用注解的方式提供,防止增删改等困扰,一旦引用到会淘汰相关的注解. 后期的一些pod资源管理软件 可能会使用注解进行pod管理. 查看资源注解 语

二进制安装kubernetes1.14.1-pod基础-07

pod对象的相位 pod对象启动到完结,总会处于一下生命进程状态中 Pending: Api server将Pod资源 存入etcd中,但是尚未被调度完毕(例如: 资源不够 内存不足等),或者处于下载镜像中. Running: Pod已经调度到某个子节点,并且已经被kubelet创建完毕并启动完毕,但是容器是否启动不确定. Successded: Pod中的所有的容器都已经成功终止,并且不会被重启 Failed: 所有容器被终止,但是至少有一个容器终止失败,返回了非0值的退出状态或者被系统终止.

mysql二进制安装,升级,多实例部署

目标 理解线上部署考虑的因素 学会编译安装以及二进制安装mysql 学会升级mysql 学会多实例部署mysql数据库 学会合理部署mysql线上库 考虑因素: 版本选择,5.1,5.5还是5.6? 分支选择,官方社区版?percona server?mariadb? 推荐官方版,简单易上手 安装方式,包安装?二进制包安装?源码安装? 线上推荐二进制包安装 路径配置,参数配置(尽量模板化,标准化) 一个实例多个库,or多个实例单个库? 二进制安装mysql 下载软件安装包 解压放到指定目录(比如

k8s 二进制安装 1.11.0

本篇安装单个etcd,然后进行扩容etcd节点至2个.3个 二进制安装k8s 1.11.0 实验架构 master: 192.168.0.91 etcd node2: 192.168.0.92 node3: 192.168.0.93 1.环境配置 如下操作在所有节点操作 配置hosts解析 [[email protected]-10-1-1-8 k8s]# hostnamectl set-hostname master [[email protected]-10-1-1-68 ~]# hostn

使用kubeadm在CentOS上搭建Kubernetes1.14.3集群

练习环境说明:参考1 参考2 主机名称 IP地址 部署软件 备注 M-kube12 192.168.10.12 master+etcd+docker+keepalived+haproxy master M-kube13 192.168.10.13 master+etcd+docker+keepalived+haproxy master M-kube14 192.168.10.14 master+etcd+docker+keepalived+haproxy master N-kube15 192.

二进制安装MySQL-5.5.33

二进制安装MySQL很方便,相比较编译安装,美中不足的就是安装包太大了.哈哈 开始安装,首先养成好习惯,创建一个专门存放安装包的目录 mkdir -p /home/yuci/tools 安装 lrzsz 可以在xshell下直接将安装包拖拽到指定目录下 yum -y install lrzsz 将 mysql 安装包拖拽到 /home/yuci/tools 目录下,解压就OK了 cd /home/yuci/tools/ tar zxf mysql-5.5.33-linux2.6-x86_64.t

安装mysql 5.6.26(二进制安装)

之前尝试过 yum .rpm.编译安装mysql,通过长时间的测试后,最终还是觉得最简单.高效的办法是采用二进制安装. 本次使用的系统是 CentOS 6.4 ,mysql版本为 mysql-5.6.26-X86_64位. 下载地址:http://pan.baidu.com/s/1bfknFo 一下为安装命令 1,切换路径 cd /usr/local/ 2,解压文件 Tar -xfmysql-advanced-5.6.26-linux-glibc2.5-x86_64.tar.gz 3,文件重命名

Win8.1(64bit) Hyper-V 安装Ubuntu 14.04LTS(64 bit)

为了学习在Linux平台下开发,时隔将近一年多,重新搭建开发环境. 写文档确实很费时间,不过还是很有必要写的,这么一个简单的事情花了接近3个小时才算最终大功告成. 像这种连环嵌套的问题,一旦超过了1个半小时就有必要停下来思考下,用笔在纸上简单整理下事情的经过,为了解决A,出现问题B;再为了解决B又出现问题C.....这样有了几个来回后,很容易忘记自己一开始的目的是什么.因为最后很有可能,用最原始的办法就能解决问题:卸载重装或者重启电脑. 1.先用VirtualBox 64bit 安装Ubuntu