k8s安装记录
端口: 文档地址: 下载地址: 安装方式:
- 修改hostname
hostnamectl set-hostname leyou-dev
(hostnamectl status => static hostname)
- 修改hosts映射 vi /etc/hosts
10.0.1.48 leyou-dev
- 禁用 swap (禁止将设备和文件用于分页和交换)
swapoff -a
- 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
- 写入yum源 vi/etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
- 选择版本
docker 和 k8s 版本比对:https://github.com/kubernetes/kubernetes/blob/release-1.19/build/dependencies.yaml 本机的docker版本是25所以选择的k8s版本是 1.227. 安装kubeadm,kubelet,kubectl
yum install -y kubelet-1.22.0 kubeadm-1.22.0 kubectl-1.22.0
- 查看是否安装成功
kubelet --version
kubeadm --version
kubectl --version
执行上述命令显示版本号即为安装成功
- 启动 docker.service 和 kubelet.service
systemctl enable docker.service
systemctl start docker.service
systemctl enable kubelet.service
systemctl start kubelet.service
- 启动 kubelet
systemctl enable kubelet
systemctl start kubelet
- 初始化 init-config.yaml 文件
在 app 目录下创建 kubernetes 文件夹 进入文件
执行命令生成init-config.yaml文件:kubeadm config print init-defaults > init-config.yaml
- 修改init-config.yaml文件:vi init-config.yaml
advertiseAddress: 10.0.1.48
imageRepository: registry.aliyuncs.com/google_containers
修改以上两处值
- 应用init-config.yaml文件
kubeadm config images pull --config=init-config.yaml
- 安装 master 节点
kubeadm init --apiserver-advertise-address=10.0.1.48 --pod-network-cidr=10.244.0.0/16 -- service-cidr=10.96.0.0/12 --image-repository registry.aliyuncs.com/google_containers
有 Your Kubernetes control-plane has initialized successfully! 输出即为成功
- 创建home目录下创建 .kube 文件夹
mkdir -p $HOME/.kube
- .kube 文件夹创建 config 文件 写入内容
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
- config 文件 设置权限
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 配置环境变量 etc/profile
export KUBECONFIG=/etc/kubernetes/admin.conf
(kubeadm join 10.0.16.16:6443 --token 0qgerd.knoyhrst3o2sj8ex \
--discovery-token-ca-cert-hash sha256:144dd50b5931b8588a2342d86d6aac35696c2302656cb75ab1f704ca0fc87c2e)
- 安装flannel插件
下载 kube-flannel.yaml 文件到 app/kubernetes 目录下
执行安装命令 kubectl apply -f kube-flannel.yml
- 让 主节点也能部署app
kubectl taint nodes --all
- 修改端口号范围 vim /etc/kubernetes/manifests/kube-apiserver.yaml
找到 --service-cluster-ip-range 这一行,在这一行的下一行增加 如下内容 - --service-node-port- range=1-65535
- 创建命名空间 dev-pms-namespace.yml
apiVersion: v1
kind: Namespace
metadata:
labels:
app: dev-byteox
name: dev-byteox
执行命令 kubectl create -f dev-pms-namespace.yml
- 创建角色权限 dev-endpoints-cluster-role.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
namespace: dev-byteox
name: endpoints-reader
rules:
- apiGroups: [""]
resources: ["pods","configmaps","endpoints","services"]
verbs: ["get", "watch", "list"]
执行命令 kubectl create -f dev-endpoints-cluster-role.yaml
- 为账号 dev-byteox 分配访问权限
kubectl create clusterrolebinding endpoints-reader-mydefault --clusterrole=endpoints-reader --serviceaccount=dev-byteox:default
- 安装 kuboard k8s管理面板
创建 start-kuboard.sh 脚本 内容如下
sudo docker run -d \
--restart=unless-stopped \
--name=kuboard \
-p 10090:80/tcp \
-p 10081:10081/tcp \
-e KUBOARD_ENDPOINT="http://47.96.187.116:10090" \
-e KUBOARD_AGENT_SERVER_TCP_PORT="10081" \
-e KUBOARD_ADMIN_DERAULT_PASSWORD="Admin.leyou!1105" \
-v /app/docker/kuboard/data:/data \
swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3
执行脚本 ./start-kuboard.sh
打开网页 k8s管理端页面 http://47.96.187.116:10090/ 账号 admin 密码 Admin.leyou!1105
点击添加集群 选择 kubeconfig 选项 将 home目录下.kube目录中config文件的内容复制进去 点击确定
安装地址:
配置文件:
启动命令:
其他注意事项:
安装K8s时,在节点初始化过程中出现[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz’ failed with error: Get “http://localhost:10248/healthz”: dial tcp 127.0.0.1:10248: connect: connection refused.报错。
解决办法 参考链接:https://blog.csdn.net/weixin_51589360/article/details/128290237