1 初始化操作系统
操作系统基本信息:
- OS:
CentOS 7.6
- 安装方式:
Minimal
- IP:
192.168.2.105
- Hostname:
ks-allinone
安装一些依赖软件和操作工具:
yum update -y
yum install vim ntpdate net-tools socat conntrack ebtables ipset -y
同步时间:
ntpdate ntp.aliyun.com
## 配置开机同步时间
echo "/usr/sbin/ntpdate ntp.aliyun.com" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
优化句柄数和最大打开进程数:
cat >> /etc/security/limits.conf << EOF
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
EOF
重启系统:
reboot
2 安装 Docker
## 卸载旧版本 Docker
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
## 配置仓库
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
## 查询可安装的版本
yum list docker-ce --showduplicates | sort -r
## 指定版本进行安装
yum install docker-ce-20.10.10 docker-ce-cli-20.10.10 containerd.io -y
## 启动 Docker
systemctl start docker
## 配置开机自启动
systemctl enable docker
## 查看启动状态
systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since 六 2022-02-26 16:20:48 CST; 10s ago
Docs: https://docs.docker.com
Main PID: 5483 (dockerd)
CGroup: /system.slice/docker.service
└─5483 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
......
Hint: Some lines were ellipsized, use -l to show in full.
3 安装 KubeSphere
## 下载 kk 安装工具
export KKZONE=cn
curl -sfL https://get-kk.kubesphere.io | VERSION=v1.2.1 sh -
## 下载不下来可以多执行几遍,实在下载不下来,使用我提供的链接进行下载:
## wget https://oss.iuskye.com/article/2022-02-26/kubekey-v1.2.1-linux-amd64.tar.gz
## tar zxf kubekey-v1.2.1-linux-amd64.tar.gz && chmod +x kk && export KKZONE=cn
## 为 kk 工具添加可执行权限
chmod +x kk
## 查看可支持的 Kubernetes 版本
./kk version --show-supported-k8s
## 开始安装,此安装过程时间较长,请耐心等待
./kk create cluster --with-kubernetes v1.22.1 --with-kubesphere v3.2.1
## 安装完成后执行以下命令查看安装结果
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
......
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://192.168.2.105:30880
Account: admin
Password: P@88w0rd
NOTES:
1. After you log into the console, please check the
monitoring status of service components in
"Cluster Management". If any service is not
ready, please wait patiently until all components
are up and running.
2. Please change the default password after login.
#####################################################
https://kubesphere.io 2022-02-26 16:51:55
#####################################################
## 查看所有组件的安装状况
kubectl get pod --all-namespaces
4 登录 Web 管理界面
在浏览器输入 URL http://192.168.2.105:30880
即可:
用户密码在上一步命令中查询得知:
- Username:
admin
- Password:
P@88w0rd
5 安装组件分解讲解
5.1 二进制安装
- kubeadm
- kubectl
- kubelet
- etcd
- cni-plugins
- helm
5.2 镜像容器安装
## K8S Master 节点组件
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-apiserver:v1.22.1
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controller-manager:v1.22.1
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-scheduler:v1.22.1
## K8S Worker 节点组件
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-proxy:v1.22.1
registry.cn-beijing.aliyuncs.com/kubesphereio/pause:3.5
kubesphere/kubectl:v1.22.0
## 网络插件
registry.cn-beijing.aliyuncs.com/kubesphereio/cni:v3.20.0
## DNS 组件
registry.cn-beijing.aliyuncs.com/kubesphereio/coredns:1.8.0
## K8S 组件
registry.cn-beijing.aliyuncs.com/kubesphereio/k8s-dns-node-cache:1.15.12
registry.cn-beijing.aliyuncs.com/kubesphereio/kube-controllers:v3.20.0
registry.cn-beijing.aliyuncs.com/kubesphereio/node:v3.20.0
registry.cn-beijing.aliyuncs.com/kubesphereio/pod2daemon-flexvol:v3.20.0
registry.cn-beijing.aliyuncs.com/kubesphereio/provisioner-localpv:2.10.1
## KubeSphere 组件
registry.cn-beijing.aliyuncs.com/kubesphereio/ks-installer:v3.2.1
kubesphere/ks-controller-manager:v3.2.1
kubesphere/ks-apiserver:v3.2.1
kubesphere/ks-console:v3.2.1
kubesphere/notification-manager:v1.4.0
kubesphere/notification-tenant-sidecar:v3.2.0
kubesphere/notification-manager-operator:v1.4.0
prom/prometheus:v2.26.0
csiplugin/snapshot-controller:v4.0.0
kubesphere/prometheus-config-reloader:v0.43.2
kubesphere/prometheus-operator:v0.43.2
kubesphere/kube-rbac-proxy:v0.8.0
registry.cn-beijing.aliyuncs.com/kubesphereio/coredns:1.8.0
prom/alertmanager:v0.21.0
kubesphere/kube-state-metrics:v1.9.7
prom/node-exporter:v0.18.1
mirrorgooglecontainers/defaultbackend-amd64:1.4
5.3 内核优化
/etc/sysctl.conf
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-arptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_local_reserved_ports = 30000-32767
vm.max_map_count = 262144
vm.swappiness = 1
fs.inotify.max_user_instances = 524288
6 参考
KubeSphere 官方:https://kubesphere.com.cn/docs/quick-start/all-in-one-on-linux/
KubeSphere Github:https://github.com/kubesphere/kubesphere
Docker:https://docs.docker.com/engine/install/centos/