文章目录
Kubernetes 集群部署(一)
1.官方提供的三种部署方式
minikube:
- 可以在本地快速运行一个单节点的 K8s,用于测试或开发,使用率较少
- 部署地址:https://kubernetes.io/docs/tasks/tools/
kubeadm:
- 提供 kubeadm init(构建 master 端)和 kubeadm join(node 端,连接),用于快速部署 K8s 集群
- 部署地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/
二进制包:
- 推荐,从官方下载发行版的二进制包,手动部署每个组件,组成 K8s 集群
- 下载地址:https://github.com/kubernetes/kubernetes/releases
随后使用的是二进制包来手动部署,建议先下载!
2.Kubernetes 平台环境规划
主机名 | IP 地址 | 资源分配 (推荐) |
组件 |
---|---|---|---|
master01 | 192.168.126.11 | 内存 4G CPU 2×4 |
kube-apiserver、kube-controller-manager、kube-scheduler、etcd |
node01 | 192.168.126.13 | 内存 4G CPU 2×4 |
kubelet、kube-proxy、docker、flannel、etcd |
node02 | 192.168.126.14 | 内存 4G CPU 2×4 |
kubelet、kube-proxy、docker、flannel、etcd |
3.自签 SSL 证书
组件 | 使用的证书 |
---|---|
etcd | ca.pem、server.pem、server-key.pem |
fiannel | ca.pem、server.pem、server-key.pem |
kube-apiserver | ca.pem、server.pem、server-key.pem |
kubelet | ca.pem、ca-key.pem |
kube-proxy | ca.pem、kube-proxy.pem、kube-proxy-key.pem |
kubectl | ca.pem、admin.pem、admin-key.pem |
4.Etcd 数据库集群部署(二进制)
①环境部署
'//更改主机名,便于识别'
[root@localhost ~]# hostnamectl set-hostname master01
[root@localhost ~]# su
[root@master01 ~]#
'//另外两台node节点'
[root@localhost ~]# hostnamectl set-hostname node01
[root@localhost ~]# su
[root@node01 ~]#
[root@localhost ~]# hostnamectl set-hostname node02
[root@localhost ~]# su
[root@node02 ~]#
'//关闭防火墙及安全访问控制机制'
[root@master01 ~]# systemctl stop firewalld && systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@master01 ~]# setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
setenforce: SELinux is disabled '//另外两台节点同'
②下载证书制作工具及制作证书
[root@master01 ~]# mkdir k8s
[root@master01 ~]# cd k8s
[root@master01 k8s]# mkdir etcd-cert
[root@master01 k8s]# cd etcd-cert/
'//创建一个目录,随后构建这个证书,该目录中专门用来放k8s的证书'
'//制作证书之前,你得有这个工具:cfssl'
访问网页:http://pkg.cfssl.org/
下载:
cfssl-certinfo_linux-arm
cfssl_linux-amd64
cfssljson_linux-amd64
[root@master01 etcd-cert]# cd /usr/local/bin/
[root@master01 bin]# rz -E '//将下载好的软件包拖至此目录下'
rz waiting to receive.
[root@master01 bin]# chmod +x * '//全部赋权'
[root@master01 bin]# ls '//查看一下'
cfssl-certinfo_linux-arm cfssljson_linux-amd64 cfssl_linux-amd64
[root@master01 bin]# mv cfssl-certinfo_linux-arm cfssl-certinfo '//改名'
[root@master01 bin]# mv cfssljson_linux-amd64 cfssljson
[root@master01 bin]# mv cfssl_linux-amd64 cfssl
[root@master01 bin]# ls
cfssl cfssl-certinfo cfssljson
'//cfssl是生成证书的工具'
'//cfssl-certinfo查看证书信息'\
'//cfssljson通过传入json文件生成证书'
'//开始制作证书,定义ca证书,格式为json'
[root@master01 bin]# cd -
/root/k8s/etcd-cert