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 |
到此为止,集群已经安装完成
安装 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 |
安装 longhorn
1 | sudo apt install nfs-common -y |
安装 istio
1 | wget https://github.com/istio/istio/releases/download/1.21.1/istio-1.21.1-linux-amd64.tar.gz |