kk 工具安装K8S集群
设置时区 每个节点都要操作
本节操作每个节点都要执行
timedatectl set-timezone Asia/Shanghai
查看时区
timedatectl
安装时间同步 每个节点都要操作
yum install chrony -y # 安装时间同步服务
systemctl enable chronyd.service # 启用时间同步服务
systemctl start chronyd.service # 开启时间同步服务
查看时区
timedatectl status
安装环境依赖
在master节点执行
yum install -y socat conntrack ebtables ipset
参数说明
ebtables: ebtables 是一个用于以太网桥的过滤器,它允许在 Linux 内核中操作以太网桥的数据包过滤规则。它可以用于控制网络流量、设置网络策略等。
socat: socat 是一个功能强大的网络工具,用于建立各种类型的连接,如 TCP、UDP、UNIX 套接字等。它可以用于端口转发、代理、网络调试等任务。
ipset: ipset 是一个用于管理 IP 地址集合的工具。它允许你创建和操作 IP 地址的集合,提供高效的 IP 地址匹配和过滤功能。ipset 可以用于防火墙配置、访问控制列表等。
conntrack: conntrack 是一个连接跟踪工具,用于在 Linux 内核中跟踪网络连接的状态。它可以用于查看和操作活动连接、连接跟踪表等。conntrack 在网络安全和网络分析中很有用。
安装KK工具
以下操作都在master节点
修改KK时区
export KKZONE=cn
下载KK
curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.7 sh -
为kk工具添加权限
chmod +x kk
创建配置文件
./kk create config --with-kubernetes v1.22.12 --with-kubesphere v3.3.2
这个指令执行后 会生成一个config-sample.yaml 文件 ls 能看到,但我当时没注意 自己搞了一个k8sc.yaml文件
参数说明
config:创建配置文件
--with-kubernetes :安装k8s,并使用最新版。指定版本时,可指定安装k8s版本
--with-kubesphere:安装kubesphere,并使用最新版。指定版本时,可安装指定版本的kubesphere
安装文件的配置 这个要使用vi工具 不要使用vim 不然会乱码
写到这个文件里 路径和名字都可以自己定义 /var/k8sc.yaml
apiVersion: kubekey.kubesphere.io/v1alpha2
kind: Cluster
metadata:
name: sample
spec: # 指定主机列表,每个主机有名称、地址、内部地址、用户名和密码等属性。
hosts:
- {name: node1, address: 192.168.40.188, internalAddress: 192.168.40.188, user: root, password: ""} # 每个主机列表中的账户密码需要与本机真实用户密码对应
- {name: node2, address: 192.168.40.138, internalAddress: 192.168.40.138, user: root, password: ""}
roleGroups: # 指定角色组
etcd: # 责存储集群的配置数据、状态信息和元数据。
- node1 # etcd 节点名称
control-plane: # 主节点名称
- node1
worker: # 工作节点名称
- node2
controlPlaneEndpoint: # 指定控制平面的终结点信息,包括域名、地址和端口号。
## Internal loadbalancer for apiservers
# internalLoadbalancer: haproxy
domain: lb.kubesphere.local
address: ""
port: 6443
kubernetes: # :指定Kubernetes的版本和集群名称等参数
version: v1.22.12
clusterName: cluster.local
autoRenewCerts: true
containerManager: docker
etcd:
type: kubekey
network: # 指定网络配置,包括网络插件和Pods和服务的CIDR等参数
plugin: calico
kubePodsCIDR: 10.233.64.0/18 # 注意,网络地址不要与真实的Ip地址冲突
kubeServiceCIDR: 10.233.0.0/18
## multus support. https://github.com/k8snetworkplumbingwg/multus-cni
multusCNI:
enabled: false
registry:
privateRegistry: ""
namespaceOverride: ""
registryMirrors: []
insecureRegistries: []
addons: []
---
apiVersion: installer.kubesphere.io/v1alpha1
kind: ClusterConfiguration
metadata:
name: ks-installer
namespace: kubesphere-system
labels:
version: v3.3.2
spec:
persistence:
storageClass: ""
authentication:
jwtSecret: ""
zone: ""
local_registry: ""
namespace_override: ""
# dev_tag: ""
etcd: # 指定Etcd的监控配置和端点信息
monitoring: false
endpointIps: localhost
port: 2379
tlsEnable: true
common: # 指定通用配置,包括核心组件、Redis、OpenLDAP等参数
core:
console:
enableMultiLogin: true
port: 30880
type: NodePort
# apiserver:
# resources: {}
# controllerManager:
# resources: {}
redis:
enabled: false
volumeSize: 2Gi
openldap:
enabled: false
volumeSize: 2Gi
minio:
volumeSize: 20Gi
monitoring: # 指定监控配置,包括Prometheus的终结点信息和GPU监控等参数
# type: external
endpoint: http://prometheus-operated.kubesphere-monitoring-system.svc:9090
GPUMonitoring:
enabled: false
gpu:
kinds:
- resourceName: "nvidia.com/gpu"
resourceType: "GPU"
default: true
es:
# master:
# volumeSize: 4Gi
# replicas: 1
# resources: {}
# data:
# volumeSize: 20Gi
# replicas: 1
# resources: {}
logMaxAge: 7
elkPrefix: logstash
basicAuth:
enabled: false
username: ""
password: ""
externalElasticsearchHost: ""
externalElasticsearchPort: ""
alerting:
enabled: false
# thanosruler:
# replicas: 1
# resources: {}
auditing:
enabled: false
# operator:
# resources: {}
# webhook:
# resources: {}
devops:
enabled: false
# resources: {}
jenkinsMemoryLim: 8Gi
jenkinsMemoryReq: 4Gi
jenkinsVolumeSize: 8Gi
events:
enabled: false
# operator:
# resources: {}
# exporter:
# resources: {}
# ruler:
# enabled: true
# replicas: 2
# resources: {}
logging: # 指定日志配置,包括日志边车的副本数等参数
enabled: false
logsidecar:
enabled: true
replicas: 2
# resources: {}
metrics_server:
enabled: false
monitoring:
storageClass: ""
node_exporter:
port: 9100
# resources: {}
# kube_rbac_proxy:
# resources: {}
# kube_state_metrics:
# resources: {}
# prometheus:
# replicas: 1
# volumeSize: 20Gi
# resources: {}
# operator:
# resources: {}
# alertmanager:
# replicas: 1
# resources: {}
# notification_manager:
# resources: {}
# operator:
# resources: {}
# proxy:
# resources: {}
gpu:
nvidia_dcgm_exporter:
enabled: false
# resources: {}
multicluster:
clusterRole: none
network:
networkpolicy:
enabled: false
ippool:
type: none
topology:
type: none
openpitrix:
store:
enabled: false
servicemesh:
enabled: false
istio:
components:
ingressGateways:
- name: istio-ingressgateway
enabled: false
cni:
enabled: false
edgeruntime:
enabled: false
kubeedge:
enabled: false
cloudCore:
cloudHub:
advertiseAddress:
- ""
service:
cloudhubNodePort: "30000"
cloudhubQuicNodePort: "30001"
cloudhubHttpsNodePort: "30002"
cloudstreamNodePort: "30003"
tunnelNodePort: "30004"
# resources: {}
# hostNetWork: false
iptables-manager:
enabled: true
mode: "external"
# resources: {}
# edgeService:
# resources: {}
terminal:
timeout: 600
开始安装
./kk create cluster -f /var/k8sc.yaml
安装中出现的问题
参考
https://blog.51cto.com/u_12826294/5059643
卡在 Please wait for the installation to complete 差不多一个小时 我才开始检查日志
查看安装日志
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f
看到 Failed to ansible-playbook result-info.yaml
看看POD情况
kubectl get pods -n kubesphere-system
这个问题 重启kubelet就好了
再次之后一直遇到 api 443 不能访问的问题 网上让 执行
systemctl status kube-proxy
查看proxy的情况,但是发现没有这个服务,不知道KK为什么不把proxy注册成服务。。谢特..
最后重新执行安装命令,发现controler-manager 也启动起来了,直接就安装成功了,怀疑是改了host之后 需要重启一下
账号 admin 密码 P@88w0rd
一些命令
查看k8s pod
kubectl get pod -n kube-system -o wide
查看K8S的POD 日志
kubectl logs -nkube-system calico-node-cr82c
查看kubesphere 的POD 日志
kubectl logs -n kubesphere-system ks-controller-manager-5fbf7f9b9f-v4fj8
注意上面两个查看POD日志指令的不同
参考
本安装教程参考 https://blog.csdn.net/D_boj/article/details/131294709
K8S架构 https://zhuanlan.zhihu.com/p/654662196
k8s官网 https://kubernetes.io/zh-cn/docs/home/
kubesphere https://www.kubesphere.io/zh/docs/v3.3/introduction/
k8s 可视化管理平台 https://blog.csdn.net/justlpf/article/details/132193408
k8s占用的端口号 https://blog.csdn.net/weixin_35756130/article/details/129074050
k8s 各组件重启 http://www.hzhcontrols.com/new-1722691.html
10250 端口问题和修改 https://segmentfault.com/a/1190000042587714?utm_source=sf-similar-article
瑞和挂载数据卷hostpatg和nfs https://www.cnblogs.com/zouzou-busy/p/16163284.html
java新手自学群 626070845
java/springboot/hadoop/JVM 群 4915800
Hadoop/mongodb(搭建/开发/运维)Q群481975850
GOLang Q1群:6848027
GOLang Q2群:450509103
GOLang Q3群:436173132
GOLang Q4群:141984758
GOLang Q5群:215535604
C/C++/QT群 1414577
单片机嵌入式/电子电路入门群群 306312845
MUD/LIB/交流群 391486684
Electron/koa/Nodejs/express 214737701
大前端群vue/js/ts 165150391
操作系统研发群:15375777
汇编/辅助/破解新手群:755783453
大数据 elasticsearch 群 481975850
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。