没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Kubernetes 部署了好多遍了,但是每次还是会遇到各种问题。有的是新版本问题,
有的是以前踩过的坑。因为没有文档记录,坑还在那里,我也还在那里。
本文是以二进制的方式部署,这样方便我们发现和解决问题。
环境说明:
角色
组件
IP
备注
Master
kube-apiserver
kube-scheduler
kube-controller-
manager
etcd
10.8.8.27
Node1
Docker
Kubelet
kube-proxy
calico-kube-controllers
calico-node
10.8.8.28
Node2
Docker
Kubelet
kube-proxy
calico-node
10.8.8.29
第一部分:kubernetes 安装
1、环境准备
1.1 安装 docker
Kubernetes 官网文档有介绍,当前版本(k8s 1.13)仅支持 docker 1.11 之后版
本,我这里安装了 docker 1.13 版本(传统的 yum 安装:yum install docker)
l 配置镜像加速,避免后面下载镜像的时候出现超时
在/etc/docker/daemon.json 文件中增加以下内容:
{
"registry-mirrors": ["http://68e02ab9.m.daocloud.io"]
}
设置开机启动:systemctl enable docker
然后我们启动 docker:systemctl start docker
1.2 Kubernetes 二进制文件准备
从 kubernetes 官网下载需要安装的版本,我搭建的时候版本是 v1.13,所以下载
v1.13 对应的二进制生成文件,对应连接:
https://kubernetes.io/docs/setup/release/notes/#downloads-for-v1-13-0,新版
本里面已经不直接提供二进制 bin 包了,需要手动执行里面的脚本下载。
解压下载的文件后,进入 cluster 目录,执行 get-kube-binaries.sh 脚本,会在解
压路径下形成 kubernetes 的二进制文件
二进制文件路径:kubernetes/server/kubernetes/server/bin
管理工具路径:kubernetes/client/bin
2、配置 kubernetes
2.1 创建证书
我最开始并没有使用安全认证,所有的 API 接口都是暴露在非安全接口上。这种
方式单纯部署 kubernetes 没有问题,但是在部署 calico 的时候,会出现各种错,
后面会详细说
2.1.1 创建 apiserver 的 CA 证书
使用 openssl 生成相关证书
#创建 ca 私钥
openssl genrsa -out ca.key 2048
#生成 ca 证书
openssl req -x509 -new -nodes -key ca.key -days 10000 -out ca.crt -subj
"/CN=k8s-master"
#创建 apiserver 私钥
openssl genrsa -out server.key 2048
#根据配置及私钥生成 apiserver 的证书请求文件
openssl req -new -key server.key -out apiserver.csr -subj "/CN=k8s-master" -
config openssl.cnf
#利用 CA 签发 apiserver 证书
openssl x509 -req -in apiserver.csr -CA ca.pem -CAkey ca.key -CAcreateserial
-out server.crt -days 365 -extensions v3_req -extfile openssl.cnf
配置文件(openssl.cnf)内容如下:
[req]
req_extensions = v3_req
distinguished_name = req_distinguished_name
[req_distinguished_name]
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
[alt_names]
DNS.1 = kubernetes
DNS.2 = kubernetes.default
DNS.3 = kubernetes.default.svc
DNS.4 = kubernetes.default.svc.cluster.local
IP.1 = 10.0.254.1
IP.2 = 10.8.8.27
说明:IP.1 是 apisver 的 cluster IP 地址;IP.2 是 apisver 的宿主主机地址;DNS
配置为 kube-apiserver 虚拟服务名称
以上操作会在当前目录生成:ca.crt ca.key ca.srl server.crt server.csr
server.key 六个文件
2.1.2 创建 kubernet-controller、kubernet-schedule 的 CA 证书
#生成 controller 私钥
openssl genrsa -out controller.key 2048
#生成证书申请文件
openssl req -new -key controller.key -out controller.csr -subj "/CN=k8s-
master"
#签发 controller 证书
openssl x509 -req -in controller.csr -CA ca.crt -CAkey controller.key -
CAcreateserial -out controller.crt -days 365
以上操作会生成:controller.crt controller.key controller.csr
2.1.3 创建 node1、node2 的 CA 证书
创建方法同 2.1.2,只是-subj 换成对应的信息,node1 换成-subj "/CN=node1",
node2 换成-subj "/CN=node2" 。最终会形成文件:node1.crt node1.csr
node1.key node2.crt node2.csr node2.key
至此所有的证书都配置完成了,下面开始配置 kubernetes 的相关组件
2.2 配置相关组件的启动脚本
2.2.1 在 master 上配置 etcd、kube-apiserver、kube-controller-manager、
kube-schedule 服务
1)etcd 服务
Etcd 服务作为 kubernetes 集群的主数据库,在安装 kubernetes 各服务之前需要
首先安装和启动。
从 github 官网(https://github.com/etcd-io/etcd/releases)下载 etcd 二进制文
件,并将 etcd 和 etcdctl 可执行的二进制文件复制到/usr/local/bin 目录下。
设置 ETCD 服务文件
l 编辑 /lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/local/bin/etcd
[Install]
WantedBy=multi-user.target
l 将服务加入到开机启动:
systemctl daemon-reload
剩余22页未读,继续阅读
资源评论
- 陈游泳2023-07-24:文件内容简洁明了,让人在阅读时能够轻松理解calico的安装过程。
- VashtaNerada2023-07-24:这篇文件提供了一些关键提示和注意事项,使得安装calico的过程更加顺利和高效。
- 书看不完了2023-07-24:这篇文件很详细地介绍了kubernetes calico的安装步骤,非常适合想要了解和使用calico的人阅读。
- MsingD2023-07-24:值得推荐的一篇文件,对于想要了解kubernetes calico的人来说,是一份不可多得的实用资料。
- 学习呀三木2023-07-24:作者通过实际操作经验总结出的安装步骤,对于初学者来说非常友好和实用。
liuqinguser
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功