k8s无敌

1163人浏览 / 0人评论

k8s是一个docker集群管理工具

k8s是容器的编排工具

一、k8s核心功能

自愈: 重新启动失败的容器,在节点不可用时,替换和重新调度节点上的容器,对用户定义的健康检查不响应的容器会被中止,并且在容器准备好服务之前不会把其向客户端广播。

弹性伸缩: 通过监控容器的cpu的负载值,如果这个平均高于80%,增加容器的数量,如果这个平均低于10%,减少容器的数量

服务的自动发现和负载均衡: 不需要修改您的应用程序来使用不熟悉的服务发现机制,Kubernetes 为容器提供了自己的 IP 地址和一组容器的单个 DNS 名称,并可以在它们之间进行负载均衡。

滚动升级和一键回滚: Kubernetes 逐渐部署对应用程序或其配置的更改,同时监视应用程序运行状况,以确保它不会同时终止所有实例。 如果出现问题,Kubernetes会为您恢复更改,利用日益增长的部署解决方案的生态系统。

私密配置文件管理. web容器里面,数据库的账户密码(测试库密码)

 二、k8s安装方式

yum安装 1.5 最容易安装成功,最适合学习的

源码编译安装---难度最大 可以安装最新版

二进制安装---步骤繁琐 可以安装最新版 shell,ansible,saltstack

kubeadm 安装最容易, 网络 可以安装最新版

minikube 适合开发人员体验k8s, 网络

三、k8s历史

2014年 docker容器编排工具,立项

2015年7月 发布kubernetes 1.0, 加入cncf基金会 孵化

2016年,kubernetes干掉两个对手,docker swarm,mesos marathon 1.2版

2017年 1.5 -1.9

2018年 k8s 从cncf基金会 毕业项目1.10 1.11 1.12

2019年: 1.13, 1.14 ,1.15,1.16 1.17

cncf :cloud native compute foundation 孵化器

kubernetes (k8s): 希腊语 舵手,领航者 容器编排领域,

谷歌15年容器使用经验,borg容器管理平台,使用golang重构borg,kubernetes

四、k8s应用场景

k8s最适合跑微服务项目!

五、k8s常用的资源

 1、创建pod资源

pod是最小资源单位.

任何的一个k8s资源都可以由yml清单文件来定义

k8s yaml的主要组成

apiVersion: v1  api版本
kind: pod   资源类型
metadata:   属性
spec:       详细

2、配置yaml文件

master配置

 mkdir k8s_yaml
 cd k8s_yaml/
 mkdir pod

 编写yaml文件

[root@k8s-master pod]# cat k8s_pod.yml 
apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    app: web
spec:
  containers:
    - name: nginx
      image: 10.0.0.11:5000/nginx:1.13
      ports:
        - containerPort: 80
 

获取

 [root@k8s-master pod]# kubectl get pod
NAME      READY     STATUS              RESTARTS   AGE
nginx     0/1       ContainerCreating   0          1m

排查专用:

[root@k8s-master pod]# kubectl describe pod nginx
 

然后发现状态不在线。发现使用了红帽的镜像。

 配置node节点更换

vim /etc/kubernetes/kubelet
KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=10.0.0.11:5000/pod-infrastructure:latest"
systemctl restart kubelet.service

   docker search pod-infrastructure
wget http://192.168.18.250/file/pod-infrastructure-latest.tar.gz
 docker load -i pod-infrastructure-latest.tar.gz 
docker images 
docker tag docker.io/tianyebj/pod-infrastructure:latest 10.0.0.11:5000/docker.io/tianyebj/pod-infrastructure:latest
 docker push 10.0.0.11:5000/docker.io/tianyebj/pod-infrastructure:latest

  wget http://192.168.18.250/file/docker_nginx1.13.tar.gz
docker load -i docker_nginx1.13.tar.gz 
docker tag docker.io/nginx:1.13 10.0.0.11:5000/nginx:1.13
 docker push 10.0.0.11:5000/nginx:1.13

服务端查询 

[root@k8s-master pod]# kubectl get pod -o wide
NAME      READY     STATUS    RESTARTS   AGE       IP            NODE
nginx     1/1       Running   0          23m       172.18.48.2   10.0.0.13
[root@k8s-master pod]# curl -I 172.18.48.2
HTTP/1.1 200 OK
Server: nginx/1.13.12
Date: Sun, 20 Sep 2020 07:32:22 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Mon, 09 Apr 2018 16:01:09 GMT
Connection: keep-alive
ETag: "5acb8e45-264"
Accept-Ranges: bytes
 

ok

全部评论