Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。
Kubernetes 这个名字源于希腊语,意为“舵手”或“飞行员”。K8s 这个缩写是因为 K 和 s 之间有 8 个字符的关系。 Google 在 2014 年开源了 Kubernetes 项目。 Kubernetes 建立在 Google 大规模运行生产工作负载十几年经验的基础上, 结合了社区中最优秀的想法和实践。
官网: https://kubernetes.io
主要记录官网的安装部署实践, 以及一些遇到的问题
初始化服务器状态(所有节点)
- 首先修改 init-config.sh 中的主节点 ip 信息,和 node 节点 ip 信息
1 | # 初始化配置文件 |
haproxy.cfg.tpl
1 | global |
keepalived.conf.tpl
1 | ! Configuration File for keepalived |
kubeadm-config.yaml
1 | apiVersion: kubeadm.k8s.io/v1beta3 |
1 | # 唯一参数,主机名称(必不可少) |
install.sh
1 |
|
初始化节点
1 | # 执行完成之后有输出信息,需要复制下来 |
复制 join 命令
执行完上述命令,会输出如下信息:
示例如下
1 | # master 加入命令 |
部署 master 节点(替换其中的 token,hash,certificate)
1 | sudo kubeadm join 192.168.1.101:6443 --token n258e9.63nk1rcbcu6422c4 --discovery-token-ca-cert-hash sha256:4916a116d04b8ac46228bae887445bbe087cac4e8096fc489fe2fc6a6060708e --control-plane --certificate-key b5e26ce8cdfa2d92412766d4cd22be7a56283a7ab3c35fca902db37c777dc0ad --cri-socket=unix:///var/run/cri-dockerd.sock |
部署 node 节点(替换其中的 token,hash,certificate)
1 | kubeadm join 192.168.1.101:6443 --token n258e9.63nk1rcbcu6422c4 --discovery-token-ca-cert-hash sha256:4916a116d04b8ac46228bae887445bbe087cac4e8096fc489fe2fc6a6060708e |
安装网络插件 calico(master 主节点,执行一次)
1 | wget https://github.com/projectcalico/calico/blob/master/manifests/calico.yaml |
安装集群指标插件
1 | helm repo add prometheus-community https://prometheus-community.github.io/helm-charts |
到此为止,集群已经安装完成
安装 dashboard
1 | wget https://github.com/jpetazzo/container.training/blob/main/k8s/dashboard-recommended.yaml |
ashboard-adminuser.yaml
1 | apiVersion: v1 |
admin-role-binding.yaml
1 | apiVersion: rbac.authorization.k8s.io/v1 |
安装 nfs(存储可选)
安装服务端
1 | # sudo apt install nfs-kernel-server ## 服务器端需要安装 |
安装 rook-ceph(分布式存储,可选)
1 | helm repo add lbjy http://192.168.1.143:8080 |
安装 longhorn(分布式存储,可选)
1 | sudo apt install nfs-common -y |
安装 istio(网格,可选)
网格服务,服务治理,好东西,推荐安装
1 | ## 增强指标 |