内容简介:直接进入正题,这篇文章讲述生产环境如何搭建 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 内核环境
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
HTML5与CSS3权威指南(上册) (第3版)
陆凌牛 / 机械工业出版社 / 2015-9-1 / CNY 89.00
本书是HTML 5与CSS 3领域公认的标杆之作,被读者誉为“系统学习HTML 5与CSS 3的最佳著作”和“Web前端工程师案头必备图书之_”。 前两版累计印刷超过15次,网络书店评论超过8000条,98%以上的评论都是五星级的好评。不仅是HTML 5与CSS 3图书领域当之无愧的领头羊,而且在整个原创计算机图书领域是佼佼者。 第3版首先从技术的角度根据最新的HTML 5和CSS 3......一起来看看 《HTML5与CSS3权威指南(上册) (第3版)》 这本书的介绍吧!