当前位置: 首页 > news >正文

网站开发团队奖惩成都网站seo技巧

网站开发团队奖惩,成都网站seo技巧,什么是门户网站,oa系统是什么目录 kubernetes 介绍环境、软件准备kubectl 安装minikube 安装部署运行实例 1、kubernetes 介绍Kubernetes 是 Google 开源的容器集群管理系统,它构建在目前流行的 Docker 技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功…

目录

  • kubernetes 介绍
  • 环境、软件准备
  • kubectl 安装
  • minikube 安装
  • 部署运行实例

1、kubernetes 介绍

Kubernetes 是 Google 开源的容器集群管理系统,它构建在目前流行的 Docker 技术之上,为容器化的应用提供资源调度、部署运行、服务发现、扩容缩容等一整套功能。而就在日前 DockerCon 欧洲大会上, Docker 宣布拥抱支持 Kubernetes,Docker 公司计划提供一个无缝平台,同时支持包含 Swarm 和 Kubernetes 集群的异构部署。minikube 是一个使我们很容易在本地运行 kubernetes 的工具,他是通过在本机 VM 里运行一个单节点集群,大大方便学习和使用 kubernetes。

2、环境、软件准备

本次演示环境,我是在本机 MAC OS 以及虚拟机 Linux Centos7 上操作,以下是安装的软件及版本:

  1. Docker: version 17.09.0-ce
  2. Oracle VirtualBox: version 5.1.20 r114628 (Qt5.6.2)
  3. Minikube: version v0.22.2
  4. Kuberctl: 
    • Client Version: v1.8.1
    • Server Version: v1.7.5

注意:Minikube 启动的单节点 k8s Node 实例是需要运行在本机的 VM 虚拟机里面,所以需要提前安装好 VM,这里我选择 Oracle VirtualBox。k8s 运行底层使用 Docker 容器,所以本机需要安装好 Docker 环境,这里忽略 Docker、VirtualBox 的安装过程,着重介绍下 Minikube 和 Kuberctl 的安装。

3、 kubectl 安装

kubectl 是 Kubernetes 的命令行工具,我们可以使用该工具查看集群资源,创建、更新、删除各个组件等等,同时提供了非常详细的使用文档,非常方便,那我们在本机 Mac 上安装一下。

安装方式有两种:

一、通过 curl 安装

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl

2、赋二进制文件执行权限chmod +x ./kubectl

3、将二进制文件移到 PATH 中sudo mv ./kubectl /usr/local/bin/kubectl

安装完毕后,执行 kubectl version 查看版本以及是否安装成功。我们可以通过 kubectl help 查看说明文档。

4、minikube 安装

minikube 是一个使我们很容易在本地运行 kubernetes 的工具,他是通过在本机 VM 里运行一个单节点 kubernetes 集群,这对于新手想了解和学习 kubernetes 提供了很大的帮助。所以在安装 minikube 之前我们需要在本机先安装 VM,这里我选择 VirtualBox 忽略安装过程,以下是可选 VM 列表:

  • OS X: xhyve driver, VirtualBox, VMware Fusion.
  • Linux: VirtualBox, KVM
  • Windows: VirtualBox, Hyper-V

minikube 的安装也很简单。

1、curl 方式安装

OSX 系统:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.22.3/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/Linux 系统:
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.22.3/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/
  • 1
  • 2
  • 3
  • 4
  • 5

2、若上边地址被墙了,可以去 GitHub 上下载安装包,在执行。

下载最新版安装包,各系统对应地址如下:

  • minikube-darwin-amd64
  • minikube-linux-amd64
  • minikube-installer.exe

然后执行 chmod +x minikube && sudo mv minikube /usr/local/bin/,即可完成安装。安装完毕后,执行 minikube version 查看版本以及是否安装成功。我们可以通过 minikube help 查看说明文档。

5、部署运行实例

好了,环境我们已经安装完毕,现在来演示运行一个实例,这里我已 tomcat 镜像为例,演示部署服务,发布服务,扩容缩容服务等操作。

1、创建并启动 minikube 虚拟机
$ minikube start
Starting local Kubernetes cluster...
Running pre-create checks...
Creating machine...
Starting local Kubernetes cluster...2、创建 hello-minikube 部署
$ kubectl run hello-minikube --image=tomcat:8.0 --port=8080
deployment "hello-minikube" created3、发布服务 hello-minikube
$ kubectl expose deployment hello-minikube --type=NodePort
service "hello-minikube" exposed4、查看 pods
$ kubectl get pods
NAME                             READY     STATUS              RESTARTS   AGE
hello-minikube-598805112-3bzmf   1/1       ContainerCreating   0          5s
注意:刚开始时,pod 没有完全创建好的时候,状态是 ContainerCreating,当部署完成后,状态就变成 Running。$ kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
hello-minikube-598805112-3bzmf   1/1       Running   0          25s5、获取服务地址
$ minikube service hello-minikube --url
http://192.168.99.102:30724
$ minikube service hello-minikube 将直接打开地址到默认浏览器上。6、停止 minikube 虚拟机
$ minikube stop
Stopping local Kubernetes cluster...
Stopping "minikube"...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

注意:在部署过程中可能会出现问题,大部分跟网络相关,下载 images 时会超时报错,解决办法是一安装翻墙工具,二是替代需要翻墙下载的 images。以下是我本机实验遇到的问题,以及解决方法。

问题一:命令行下载 tomcat:8.0 镜像,执行 docker pull tomcat:8.0 没有任何反应,初步分析可能是 minikube 虚拟机里没有连接到本地 docker 服务。

$ minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.102:2376"
export DOCKER_CERT_PATH="/Users/wanyang3/.minikube/certs"
export DOCKER_API_VERSION="1.23"
  • 1
  • 2
  • 3
  • 4
  • 5

执行 eval $(minikube docker-env),即设置 minikube 虚拟机的 docker 环境变量即可。

问题二:执行完毕上边 2 和 3 步骤后,发现 hello-minikube 服务并没有成功启动。

$ kubectl get pods
NAME                             READY     STATUS              RESTARTS   AGE
hello-minikube-598805112-3bzmf   0/1       ContainerCreating   0          15s
  • 1
  • 2
  • 3

发现 hello-minikube 的状态一直是 ContainerCreating,并且 READY 为 0/1,通过 minikube logs 查看日志可以看出,有一个镜像 gcr.io/google_containers/pause-amd64:3.0 显示拉取失败,分析原因应该是 gcr.io 这个地址被墙了。

# 替换镜像
$ docker pull visenzek8s/pause-amd64:3.0
$ docker tag visenzek8s/pause-amd64:3.0 gcr.io/google_containers/pause-amd64:3.0# 显式设置拉取策略为 IfNotPresent
$ kubectl run hello-minikube --image=tomcat:8.0 --port=8080 --image-pull-policy=IfNotPresent 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

方案就是替换该镜像,然后可以设置拉取策略为优先本地获取,本地没有再去远程获取。因为这里服务启动策略为 always,会定时自动重新拉取,所以一旦本地拉取该镜像后,我们会发现上边 hello-minikube 一会就启动成功了。

下边介绍一下 kubectl 一些其他常用操作。

1、创建资源的两种方式

1.1 通过 Yaml 或 Json 文件创建

$ kubectl create -f <file_path>/xxx.yaml | <file_path>/xxx.json --[options]
eg:kubectl create -f ./redis.yaml
  • 1
  • 2

简单的 redis.yaml 示例:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:name: hello-redisnamespace: my-kube
spec:replicas: 2template:metadata:labels:group: hello-scmmy-kube: hello-redisk8s-app: redisspec:containers:- name: redisimage: redis:latest
---
apiVersion: v1
kind: Service
metadata:labels:group: hello-scmkubernetes.io/cluster-service: 'true'kubernetes.io/name: hello-redisname: hello-redisnamespace: my-kube
spec:ports:- port: 6379targetPort: 6379selector:k8s-app: redis
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

yaml 文件要符合 kubernetes 的规范,可以参考官网对 yaml 语法定义,可以自学一下,这里就不展开来说了。

1.2 指定镜像启动

$ kubectl run --image=xxxx:xx --[options]
eg: kubectl run hello-minikube --image=tomcat:8.0 --port=8080 
  • 1
  • 2

2、复制多个部署 pod

$ kubectl scale --replicas=3 deployment/hello-minikube
deployment "hello-minikube" scaled
$ kubectl get pods
NAME                             READY     STATUS    RESTARTS   AGE
hello-minikube-598805112-3bzmf   1/1       Running   1          1d
hello-minikube-598805112-vrskz   1/1       Running   1          1d
hello-minikube-598805112-xwq55   1/1       Running   1          1d也可以在启动时,指定复制数量
$ kubectl run hello-minikube --image=tomcat:8.0 --port=8080 --replicas=3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

3、暴露 pod (po), service (svc), replicationcontroller (rc), deployment (deploy), replicaset (rs) 成新的服务

$ kubectl expose po | svc | rc | delpoy | rs --[options]
eg:kubectl expose deployment hello-minikube --type=NodePort # 暴露名称为 hello-minikube 部署为类型为 NodePort 的服务
eg:kubectl expose rc hello-nginx --port=80 --target-port=8000 --type=NodePort # 暴漏名称为 nginx 的副本为指定服务端口80,连接该服务端口8000,类型为 NodePort 的服务$ kubectl get service
NAME             TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)          AGE
hello-minikube   NodePort    10.0.0.176   <none>        8080:30724/TCP   1d
hello-nginx      NodePort    10.0.0.94    <none>        80:8000/TCP      1d
kubernetes       ClusterIP   10.0.0.1     <none>        443/TCP          1d
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4、重新加载某个资源

$ kubectl apply -f <file_path>/xxx.yaml | <file_path>/xxx.json --[options]
eg:kubectl apply -f ./redis.yaml
  • 1
  • 2

5、查看 pod, service, replicationcontroller, deployment, replicaset 各种类型资源信息列表

$ kubectl get po | svc | rc | deploy | rs # 查看默认 namespace 下各类型资源信息列表
$ kubectl get po | svc | rc | deploy | rs --all-namespaces # 查看所有 namespace 下各类型资源信息列表
  • 1
  • 2

6、查看 pod, service, replicationcontroller, deployment, replicaset 各种类型资源日志信息或描述信息

$ kubectl logs <resource_type>/<resource_name> [options]
eg:kubectl logs -f po/hello-minikube-598805112-3bzmf # 查看指定 pod 的日志
eg:kubectl logs deploy/hello-nginx -n my-kube # 查看指定 delpoy 和 namespace 的日志$ kubectl describe <resource_type>/<resource_name> [options]
eg:kubectl describe pods # 查看所有 pod 的描述信息
eg:kubectl describe po/hello-minikube-598805112-3bzmf # 查看指定 pod 的描述信息
eg:kubectl describe deploy/hello-nginx -n my-kube # 查看指定 delpoy 和 namespace 的描述信息
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

7、查看集群信息

$ kubectl cluster-info
Kubernetes master is running at https://192.168.99.102:8443
  • 1
  • 2

好了,先介绍这么多,下一篇继续介绍下通过 minikube 安装 Kubernetes Dashboard 并集成 Heapster 插件。

参考资料

  • Running Kubernetes Locally via Minikube
  • Install Minikube
  • Install and Set Up kubectl
  • github minikube

http://www.lbrq.cn/news/2514205.html

相关文章:

  • 免费seo推广软件百度seo详解
  • 房地产项目网站建设中国企业500强排行榜
  • wordpress加载模板文件路径seo线下培训班
  • 做网站流程、网络营销和传统营销的区别有哪些
  • 惠州外包网站建设宁波seo自然优化技术
  • 求推荐专门做借条的网站开一个免费网站
  • 包头网站建设熊掌号网页设计制作网站html代码大全
  • 怎样免费做书画网站市场推广方案怎么做
  • 中国建设银行网站属于什么机构独立网站和平台网站
  • 如何代做网站引流推广神器
  • 做瞹瞹瞹视频网站网络营销的五大优势
  • 一品威客做任务要给网站钱吗seo团队管理系统
  • 有哪些做网站好的公司seo排名赚下载
  • wordpress网站底部导航代码培训心得总结怎么写
  • 如何开发手机版网站百度排行榜
  • 大淘客官网做的网站打不开金昌网站seo
  • 国外用tornado做的网站seo推广视频隐迅推专业
  • 建网站教程如何免费创建自己的平台
  • 网站建设图片怎么做合肥做网站哪家好
  • 专业网站的建设品牌营销推广
  • 长沙设计网站排名域名查询官网
  • 网站开发 安全合同seo网络优化前景怎么样
  • 台州网络建站模板平面设计培训
  • 鄂州网站制作哪家好广州百度seo优化排名
  • 英铭网站建设网站推广广告
  • web网站开发标题字体加粗百度快速收录工具
  • 网站建设分配人员方案营业推广是什么意思
  • 做网站都要买服务器吗广告网
  • 运维难还是开发难免费网站seo诊断
  • 有没有做海报的网站推荐泉州seo优化
  • gaussdb demo示例
  • MidJourney精选图集与提示词生成器:AI创意灵感与高效提示词工具
  • 【Qt开发】信号与槽(三)-> 自定义信号和槽
  • SpringBoot集成deepseek
  • Deepseek + browser-use 轻松实现浏览器自动化
  • JavaScript核心概念全解析