• kuberbetes部署tomcat


    k8s学习之路一步一大坑,艰难的提高自己技能之路!!!

    1、准备三台服务器

    10.0.0.11 master

    10.0.0.12 node1

    10.0.0.13 node2

    2、三台机器都需要安装docker,并关闭防火墙

    docker安装yum -y install docker

    关闭防火墙  systemctl stop firewalld   setenforce 0

    3、在三台服务器的/usr/local/下创建/dev/k8s目录

    4、查看node结点是否连接正常

    [root@localhost ~]# kubectl get nodes
    NAME        STATUS    AGE
    10.0.0.12   Ready     14s
    10.0.0.13   Ready     12s
    

    5、创建部署资源编排文件

    [root@localhost k8s]# vim tomcat01.yaml 
    
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment  #表示这是Deployment调度配置
    metadata:
      name: myweb   #调度对象的全称,全局唯一
    spec:
      replicas: 2   #表示创建2个pod副本数量
      template:     #根据此模板创建pod实例
        metadata:
          labels:
            app: myweb      #pod拥有的标签。对应RC的selector  这里的RC表示(副本控制器)
        spec:
          containers:
            - 
              image: docker.io/tomcat       #从docker拉取的tomcat镜像名称
              name: myweb
              ports:
                - 
                  containerPort: 8080       #tomcat容器的端口
    
    ---
    apiVersion: v1
    kind: Service   #表示这是service服务配置
    metadata:
      name: myweb
    spec:
      ports:
        - 
          nodePort: 31111   #浏览器访问此服务的端口
          port: 8081
          targetPort: 8080
      selector:
        app: myweb
      type: NodePort        #表示这个服务是一个node节点的端口

    这里是我编排好的文件,第一次写好后创建就出现了第一个大坑

    6、创建命令

    kubectl create -f tomcat01.yaml
    
    #如果配置错了,创建了一个错误的service和pod,可以用删除命令,配置正确后再重新创建一遍
    kubectl delete -f tomcat01.yaml

    这里我将我的报错放出来,避免大家入坑

    [root@localhost k8s]# kubectl create -f tomcat01.yaml
    Error from server (AlreadyExists): error when creating "tomcat01.yaml": deployments.extensions "myweb" already exists
    yaml: line 6: did not find expected key
    
    
    [root@localhost k8s]# kubectl create -f tomcat01.yaml
    error: error validating "tomcat01.yaml": error validating data: found invalid field spec for v1.ObjectMeta; if you choose to ignore these errors, turn validation off with --validate=false
    
    
    [root@localhost k8s]# kubectl create -f tomcat01.yaml
    error: yaml: line 10: did not find expected key
    
    
    [root@localhost k8s]# kubectl create -f tomcat01.yaml
    error: yaml: line 13: did not find expected '-' indicator

    这里的错误都是在说编排文件的格式错误,在这里我放一个连接,自动编排排错yaml文件工具连接,http://www.yamllint.com/

    创建成功

    [root@localhost k8s]# kubectl create -f tomcat01.yaml
    deployment "myweb" created
    service "myweb" created

    7、查看pods是否创建成功且运行成功

    [root@localhost k8s]# kubectl get pods
    NAME                    READY     STATUS              RESTARTS   AGE
    myweb-209501739-2cjlz   0/1       ContainerCreating   0          8s
    myweb-209501739-qx9qq   0/1       ContainerCreating   0          8s

    如果此时你的status和我的状态是一样的(正常的status状态是running的),那么恭喜你 又出现了第二个大坑了,哈哈!!!!

    查看两个pods的日志

    第一个节点

    第二个节点

     查看了日志发现都是一个问题,都是少了一个文件,错误的意思是说在pul镜像image的时候没有凭据,没有redhat-ca.crt文件

    于是我查了很多博客,终于把问题解决了

    问题就是我的node节点机上没有redhat-ca.crt文件,此文件应该是用来连接主机master作凭证,
    
    在node节点机10.0.0.12上和10.0.0.13节点,执行如下命令:
    
    1、wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
    
    2、rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
    
    3、docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest

     此时查看状态

    [root@localhost ~]# kubectl get pods
    NAME                    READY     STATUS    RESTARTS   AGE
    myweb-209501739-7c489   1/1       Running   0          1d
    myweb-209501739-911kr   1/1       Running   0          1d
    [root@localhost ~]# kubectl get svc
    NAME         CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    kubernetes   10.254.0.1      <none>        443/TCP          1d
    myweb        10.254.182.54   <nodes>       8081:31111/TCP   1d

    这样的状态表示成功!

    打开游览器访问node节点的31111端口,此时部署完成

  • 相关阅读:
    什么是J2EE
    JSE,JEE,JME三者之间有什么区别
    windows下git显示文件被修改,实际没有改动的问题解决办法
    laravel 多个项目共享SESSION
    laravel 共享session问题总结
    laravel5 报错419,form 添加crrf_field 后让然失败,本地环境配置问题
    QQ互联登录提示redirect uri is illegal(100010)完美解决方法
    vim鼠标模式打开与关闭
    HTML5----响应式(自适应)网页设计
    file_put_contents () failed to open stream: Permission denied 解决办法
  • 原文地址:https://www.cnblogs.com/Zrecret/p/14139373.html
Copyright © 2020-2023  润新知