zoukankan      html  css  js  c++  java
  • kubernetes学习第一篇-k8s安装以及HelloWorld

    安装

    1. 关闭防火墙服务

    # systemctl disable firewalld
    # systemctl stop firewalld  

    2. 安装etcd以及kubernetes软件

    yum install -y etcd kubernetes

    3. 修改Docker配置为

    vim /etc/sysconfig/docker
    OPTIONS='--selinux-enabled=false --insecure-registry grc.io --log-driver=journald --signature-verification=false'
    

    4.按顺序启动服务

    systemctl start etcd
    systemctl start docker
    systemctl start kube-apiserver
    systemctl start kube-controller-manager
    systemctl start kube-scheduler
    systemctl start kubelet
    systemctl start kubelet
    systemctl start kube-proxy
    

    5. 检查是否启动成功

    HelloWorld

    1. 编写一个配置文件mysql-rc.yaml

    apiVersion: v1
    #副本控制器
    kind: ReplicationController
    metadata:
      name: mysql
    spec:
      # 实例的数量
      replicas: 1
      selector:
        # Pod名称
        app: mysql
      template:
        metadata:
          # Pod副本名称对应selector
          labels:
            app: mysql
        spec:
          containers:    # Pod内容定义部分
          - name: mysql  # 容器的名称
            image: mysql # 容器的镜像
            ports:
            - containerPort: 3306 ## 暴露端口
            env: ##注入到容器内的环境变量
            - name: MYSQL_ROOT_PASSWORD
              value: "123456"
    

    2. 启动

    kubectl create -f mysql-rc.yaml
    

    3. 查看状态

    # kubectl get rc
    NAME      DESIRED   CURRENT   READY     AGE
    mysql     1         1         1         14m
    

    Pod状态

    # kubectl get pods
    NAME          READY     STATUS    RESTARTS   AGE
    mysql-w3t8z   1/1       Running   0          14m
    

    4. 问题解决

    1. 启动后发现 Pod状态一直都是ContainerCreating

      1. 使用kubectl describe po mysql查看状态

      2. 如果出现如下错误

    kubectl describe po  mysql-bwnlk
    Name:       mysql-bwnlk
    Namespace:  default
    Node:       127.0.0.1/127.0.0.1
    Start Time: Thu, 04 Jan 2018 10:20:45 +0800
    Labels:     app=mysql
    Status:     Pending
    IP:     
    Controllers:    ReplicationController/mysql
    Containers:
      mysql:
        Container ID:   
        Image:      daocloud.io/library/mysql
        Image ID:       
        Port:       3306/TCP
        State:      Waiting
          Reason:       ContainerCreating
        Ready:      False
        Restart Count:  0
        Volume Mounts:  <none>
        Environment Variables:
          MYSQL_ROOT_PASSWORD:  123456
    Conditions:
      Type      Status
      Initialized   True 
      Ready     False 
      PodScheduled  True 
    No volumes.
    QoS Class:  BestEffort
    Tolerations:    <none>
    Events:
      FirstSeen LastSeen    Count   From            SubObjectPath   Type        Reason      Message
      --------- --------    -----   ----            -------------   --------    ------      -------
      3m        3m      1   {default-scheduler }        Normal      Scheduled   Successfully assigned mysql-bwnlk to 127.0.0.1
      3m        20s     5   {kubelet 127.0.0.1}     Warning     FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "POD" with ErrImagePull: "image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request.  details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)"
    
      2m    8s  10  {kubelet 127.0.0.1}     Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "POD" with ImagePullBackOff: "Back-off pulling image "registry.access.redhat.com/rhel7/pod-infrastructure:latest""
    

      解决:

    yum install *rhsm*
    

      安装服务

    #wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
    #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
    

      删除原先的服务

    kubectl delete -f mysql-rc.yaml
    kubectl create -f mysql-rc.yaml
    

      

    问题2:docker下载pull失败问题

    1. 安装阿里镜像加速即可解决https://cr.console.aliyun.com/cn-hangzhou/mirrors

  • 相关阅读:
    Nginx配置虚拟主机
    TCP有限状态机
    一次完整的HTTP请求过程
    129 爬虫 requests request 爬图片
    算法: 二分查找 冒泡 插入 选择排序
    121 monogdb安装, 增删改查, mongodb中的update修改器 pymomgo
    119 websocket 群聊 单聊 websocket的握手 加密解密
    118 falsk智能机器人 语音合成 语音识别
    117 flask中的上下文实现原理 偏函数 线程 setattr
    python基础中的内置方法:
  • 原文地址:https://www.cnblogs.com/lonecloud/p/10390788.html
Copyright © 2011-2022 走看看