美文网首页K8s安装
二、k8s单机demo

二、k8s单机demo

作者: yezide | 来源:发表于2019-06-11 00:11 被阅读0次

来一个demo,提振下士气,来个根据权威指南《1.3 从一个简单的例子开始》
参考文章

1、安装mysql

1.1 创建mysql-rc.yaml文件

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"

1.2 创建pod

// 创建
kubectl create -f mysql-rc.yaml
// 查看pod
kubectl get pods
// 问题排查
kubectl describe pod mysql-v5lq7

1.3 遇到的问题

kubectl get pods看到,镜像一直在创建中,没完了
用describe命令查看, 原因是node节点的kubelet无法拉pause镜像
解决办法: 在各个node人工执从国内镜像拉,然后再打tag,曲线救国呀, 参考此文章

docker pull mirrorgooglecontainers/pause:3.1
docker tag docker.io/mirrorgooglecontainers/pause:3.1  k8s.gcr.io/pause:3.1

1.4 问题思考

怎么修改node的仓库,让它去国内仓库获取pause容器?

2、创建mysql k8s service

2.1、创建mysql-svc.yaml文件

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
    - port: 3306
  selector:
    app: mysql

2.2 创建service

kubectl create -f mysql-svc.yaml

2.3 查看

kubectl get svc

3、安装tomcat

3.1 创建myweb-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: myweb
spec:
# Pod的数量
  replicas: 1
# spec.selector与spec.template.metadata.labels,这两个字段必须相同,否则下一步创建RC会失败。
  selector:
    app: myweb
  template:
    metadata:
      labels:
        app: myweb
#   容器组的定义
    spec:
      containers:
#       容器名称
        - name: myweb
#         容器对应的镜像
          image: kubeguide/tomcat-app:v1
          ports:
#         在8080端口上启动容器进程,PodIP与容器端口组成Endpoint,代表着一个服务进程对外通信的地址
          - containerPort: 8080
          env:
#此处如果在未安装域名解析的情况下,会无法将mysql对应的IP解析到env环境变量中,因此先注释掉!
#          - name: MYSQL_SERVICE_HOST
#            value: 'mysql'
          - name: MYSQL_SERVICE_PORT
            value: '3306'

3.2 创建pod

kubectl create -f myweb-rc.yaml

3.3 创建myweb-svc.yaml

apiVersion: v1
kind: Service
metadata: 
  name: myweb
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30001
  selector:
    app: myweb

4、收成果

因为我是部署在阿里云, 所以要给几台ecs设置安全规则,放行30001端口,访问nodeIp:nodePort即可
--其实这个是在单机的demo,没有把两个容器放到同个pod中,最终是跑不起来的

5、问题

为什么是访问nodeIp而不是masterIP?
按理说不是有负载均衡的吗? 希望后面的章节可以解答我的疑问

相关文章

  • 二、k8s单机demo

    来一个demo,提振下士气,来个根据权威指南《1.3 从一个简单的例子开始》参考文章 1、安装mysql 1.1 ...

  • minikue入门

    简介 minikube是k8s的单机实现,支持所有k8s特性,可以用来作为本地k8s应用的开发和调试工具,官网:h...

  • CentOs 7 简单安装单机K8S

    CentOs 7 单机 安装 K8S 1、关闭防火墙,selinux,swapoff systemctl di...

  • 3.Docker Desktop安装k8s

    一、安装单机版k8s 1.1 安装步骤 采用Docker Desktop安装k8s是最简单的一种安装方式,打钩En...

  • K8S入门(二) 单机部署

    目的 搭建一个单机环境学习实践用,既做Master节点也做Node节点,通过实际操作深入理解k8s中的基础概念 配...

  • linux centos 以Minikube单机模式运行 kub

    Minikube 顾名思义,是k8s的最小运行模式,故单机模式,它将k8s的必要组件都容器化在最小的安装包里,接下...

  • Spark 实战

    Spark 部署单机Demo实战 http://blog.csdn.net/pucao_cug/article/d...

  • K8S单机安装

    K8S单机部署 环境:CentOS Linux release 7.6 1.关闭centos自带的防火墙 2.安装...

  • centos8搭建单机k8s

    一、单机安装k8s 配置yum源 /etc/yum.repos.d/kubernetes.repo 关闭防火墙 关...

  • 手动构筑单机版K8s(一)事前准备

    本文旨在手动构建单机K8s v1.18.0组件,理解其组成结构。大部分内容参考于下记网址,局部内容因单机结构和版本...

网友评论

    本文标题:二、k8s单机demo

    本文链接:https://www.haomeiwen.com/subject/rugtfctx.html