生产环境搭建 kubernetes(11.3)

栏目: 编程工具 · 发布时间: 7年前

内容简介:直接进入正题,这篇文章讲述生产环境如何搭建 kubernets cluster。我们使用 kubespray 使用搭建 k8s cluster。 至于其他搭建工具 kops, kubeadm 感兴趣的大家可以自己研究一下,各有优势。直接安装是无法成功的,因为我们在 cn 很多k8s需要的镜像无法直接 pull 下来。这一步我们就必须把镜像地址改成我们能拉倒的地址

直接进入正题,这篇文章讲述生产环境如何搭建 kubernets cluster。

我们使用 kubespray 使用搭建 k8s cluster。 至于其他搭建工具 kops, kubeadm 感兴趣的大家可以自己研究一下,各有优势。

环境:

  • aws(cn-north-1)
  • ubuntu 16.04
  • kubernetes v1.11.3
  • kubespray v2.7.0

搭建 ->

环境准备

  • 准备实例
    我们先准备5个实例,其中3个作为 master, 2个作为 node
  • 分发公钥
    选定其中一个作为我们的操作实例,因为后续操作都是通过 ssh 与各个节点交互, 先在操作节点上 ssh-keygen 生成公私钥并且把公钥 id_rsa.pub 分发到其他的节点上
  • kubespray环境
    • 下载 kubespray
      wget https://github.com/kubernetes-incubator/kubespray/releases/tag/v2.7.0
    • 解压并且按照依赖
      tar xzvf v2.7.0.tar.gz && cd kubespray-2.7.0 pip install -r requirements.txt
      • 生成清单
        • 清单目录
          cp -r inventory/sample inventory/my_cluster
        • 声明实例地址
          declare -a IPS=(172.31.xx.1 172.31.xx.2 172.31.xx.3 172.31.xx.4 172.31.xx.5)
        • 生成目标机器的地址配置
          CONFIG_FILE=inventory/my_cluster/hosts.ini python3 contrib/inventory_builder/inventory.py ${IPS[@]}

镜像地址修改

直接安装是无法成功的,因为我们在 cn 很多k8s需要的镜像无法直接 pull 下来。这一步我们就必须把镜像地址改成我们能拉倒的地址

主要是两类镜像 gco.io 和 quay.io ,这两类镜像地址必须修改。

find . -name '*.yml' | xargs -n1 -I{} sed -i 's/quay\.io/quay\.mirrors\.ustc\.edu\.cn/' {}`
find . -name '*.yml' | xargs -n1 -I{} sed -i 's/gcr\.io\/google-containers\//anjia0532\/google-containers\./' {}`
find . -name '*.yml' | xargs -n1 -I{} sed -i 's/gcr\.io\/google_containers\//anjia0532\/google-containers\./' {}`

修改 docker 本身的仓库

修改roles/docker/defaults/main.yml文件

docker_ubuntu_repo_base_url: "http://mirrors.aliyun.com/docker-ce/linux/ubuntu"
docker_ubuntu_repo_gpgkey: "http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg"
dockerproject_apt_repo_base_url: "https://mirrors.tuna.tsinghua.edu.cn/docker/apt/repo"
dockerproject_apt_repo_gpgkey: "https://mirrors.tuna.tsinghua.edu.cn/docker/apt/gpg"

安装启动

在 kubesray 目录下

ansible-playbook -i inventory/zaihui_cluster/hosts.ini cluster.yml -b -v

由此安装开始…

如果此过程没有任何报错,最后能看到所有节点的状态是 success 。 那么应该就安装成功了!

但是这个过程很可能还是会失败,最大的可能性就是上面我们修改的镜像地址有的可能还是拉不到镜像, 这个时候就要根据具体的镜像做修改。

比如 quay.mirrors.ustc.edu.cn/calico/cni:v3.1.3 拉取失败,我们可以去 docker hub 上看是否有相应版本的镜像。修改成 calico/cni:v3.1.3 。

kubernetes dashboard

kubespray 安装的时候默认已经安装了 k8s dashboard。我们可以创建 service account 并赋予相应的权限来使用 token 访问dashboard。

比如我们给默认 namespace default 下的 serviceaccount default 分配权限。

  • RABC 配置文件

    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      namespace:default
      name:default
    rules:
    - apiGroups: ["", "extensions", "apps", "batch"]
      resources: ["*"]
      verbs: ["update", "get", "watch", "list", "create", "patch"]
    ---
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: default-role-binding
      namespace:default
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name:default
    subjects:
    - kind: ServiceAccount
      name:default
      namespace: default
    
  • 获取token

    kubectl -n default describe secret $(kubectl -n default get secret | grep default | awk '{print $1}')

  • 使用 nginx 反向代理 api-server

    示例配置

     server {
        server_name
    
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass https://172.31.xx.xxx:6443;
            client_max_body_size 200m;
        }
    }
    

以上所述就是小编给大家介绍的《生产环境搭建 kubernetes(11.3)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

深度学习

深度学习

[美] 伊恩·古德费洛、[加] 约书亚·本吉奥、[加] 亚伦·库维尔 / 赵申剑、黎彧君、符天凡、李凯 / 人民邮电出版社 / 2017-7-1 / 168

《深度学习》由全球知名的三位专家Ian Goodfellow、Yoshua Bengio 和Aaron Courville撰写,是深度学习领域奠基性的经典教材。全书的内容包括3个部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。 《深度......一起来看看 《深度学习》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具