内容简介:直接进入正题,这篇文章讲述生产环境如何搭建 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[@]}
-
清单目录
-
生成清单
-
下载 kubespray
镜像地址修改
直接安装是无法成功的,因为我们在 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)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Hyperledger Fabric环境搭建及环境测试(Mac环境)
- CV 环境很重要,各种环境搭建大全
- Openstack Queens 环境搭建(一)环境准备
- Python 环境搭建
- 1 - 搭建开发环境
- 搭建 Android 内核环境
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
深入理解Java虚拟机
周志明 / 机械工业出版社 / 2011-6 / 69.00元
《深入理解Java虚拟机:JVM高级特性与最佳实践》内容简介:作为一位Java程序员,你是否也曾经想深入理解Java虚拟机,但是却被它的复杂和深奥拒之门外?没关系,本书极尽化繁为简之妙,能带领你在轻松中领略Java虚拟机的奥秘。本书是近年来国内出版的唯一一本与Java虚拟机相关的专著,也是唯一一本同时从核心理论和实际运用这两个角度去探讨Java虚拟机的著作,不仅理论分析得透彻,而且书中包含的典型案......一起来看看 《深入理解Java虚拟机》 这本书的介绍吧!