ARM架构安装Kubernetes集群
背景
类型 | 版本 |
---|---|
操作系统 | CentOS Linux release 7.6.1810 (AltArch) |
内核 | Linux master 4.18.0-80.7.2.el7.aarch64 |
硬件配置 | 8核16G内存 * 2台 |
计算机名 | master、node1 |
K8S版本 | 1.14.2 |
计算机名 | 公网IP | 私网IP |
---|---|---|
master | 116.63.180.97 | 192.168.0.113 |
node1 | 116.63.177.54 | 192.168.0.226 |
说明:
- 搭建K8s集群,每台节点均需要按照文档安装Docker及K8s的全部组件。
- 为验证集群搭建功能,至少需要两个节点。如果要验证亲和性调度功能,至少需要三台节点,安装配置工作在每台节点都需要执行。
- Master为集群管理节点,node1为集群计算节点。
一、配置华为云yum源
1.1 配置华为云yum源。
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.huaweicloud.com/kubernetes/yum/repos/kubernetes-el7-aarch64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=http://mirrors.huaweicloud.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.huaweicloud.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
说明:
若没有找到需要的k8s版本,可自行配置阿里yum源
1.2 刷新yum缓存。
yum makecache
二、安装配置K8S
主节点和计算节点都需要安装配置K8s。
2.1 安装Docker
2.1.1 安装yum-utils软件包并设置稳定的存储库。
yum install -y yum-utils
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
2.1.2 安装特定版本Docker
要安装特定版本的Docker Engine,可以先通过命名查看存储库,列出可用版本,然后选择并安装:
yum list docker-ce --showduplicates | sort -r
yum list docker-ce-cli --showduplicates | sort -r
然后根据版本号安装(本文选择),例如:
yum install docker-ce-18.09.9-3.el7 docker-ce-cli-18.09.9-3.el7 containerd.io
也可以安装最新版,例如直接使用方式,本文选择的不是最新版本,安装的是指定版本18.09
yum install docker-ce docker-ce-cli containerd.io
2.1.3 安装完成启动
systemctl start docker
2.1.4 通过docker version查看版本
2.1.5 设置docker开机启动
systemctl enable docker
2.2 安装基础组件
2.2.1 启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项。
sysctl -w net.bridge.bridge-nf-call-iptables=1
2.2.2 禁用交换分区。
swapoff -a
cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
2.2.3 安装K8s组件。
yum install -y kubelet kubeadm kubectl kubernetes-cni
2.2.4 查看安装情况。
rpm -qa | grep kubelet
rpm -qa | grep kubeadm
rpm -qa | grep kubectl
rpm -qa | grep kubernetes-cni
例如看到如下内容代表安装成功
[root@master aarch64]# rpm -qa | grep kubelet
kubelet-1.14.2-0.aarch64
[root@master aarch64]# rpm -qa | grep kubeadm
kubeadm-1.14.2-0.aarch64
[root@master aarch64]# rpm -qa | grep kubectl
kubectl-1.14.2-0.aarch64
[root@master aarch64]# rpm -qa | grep kubernetes-cn
kubernetes-cni-0.7.5-0.aarch64
2.2.5 设置iptables。
echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf
2.2.6 开机启动kubelet服务。
systemctl enable kubelet
2.3 通过Docker下载其它组件
2.3.1 查看下载节点初始化所需镜像。
kubeadm config images list
[root@master aarch64]# kubeadm config images list
I1208 09:21:05.327540 2544 version.go:96] could not fetch a Kubernetes version from the internet: unable to get URL "https://dl.k8s.io/release/stable-1.txt": Get https://storage.googleapis.com/kubernetes-release/release/stable-1.txt: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
I1208 09:21:05.327591 2544 version.go:97] falling back to the local client version: v1.14.2
k8s.gcr.io/kube-apiserver:v1.14.2
k8s.gcr.io/kube-controller-manager:v1.14.2
k8s.gcr.io/kube-scheduler:v1.14.2
k8s.gcr.io/kube-proxy:v1.14.2
k8s.gcr.io/pause:3.1
k8s.gcr.io/etcd:3.3.10
k8s.gcr.io/coredns:1.3.1
K8s所需镜像版本有可能会变动,因此查看列表并以此匹配需要下载的Docker镜像,文档中的镜像版本仅做参考。
切忌直接把非arm架构机器上的镜像直接复制过来使用
2.3.2 从DockerHub上下载镜像(速度有点慢)
命令如下所示
docker pull docker.io/mirrorgooglecontainers/kube-apiserver-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/kube-controller-manager-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/kube-scheduler-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/kube-proxy-arm64:v1.14.2
docker pull docker.io/mirrorgooglecontainers/pause-arm64:3.1
docker pull docker.io/mirrorgooglecontainers/etcd-arm64:3.3.10
docker pull docker.io/coredns/coredns:1.3.1
下载完成后可以查看本地镜像
[root@master aarch64]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mirrorgooglecontainers/kube-proxy-arm64 v1.14.2 5227f1c3c8a7 19 months ago 82.7MB
mirrorgooglecontainers/kube-apiserver-arm64 v1.14.2 091f78b1b081 19 months ago 207MB
mirrorgooglecontainers/kube-controller-manager-arm64 v1.14.2 e0fa3d206e49 19 months ago 155MB
mirrorgooglecontainers/kube-scheduler-arm64 v1.14.2 485238b2c4a5 19 months ago 82.2MB
coredns/coredns 1.3.1 7e8edeee9a1e 23 months ago 37.4MB
mirrorgooglecontainers/etcd-arm64 3.3.10 ad99d3ead043 2 years ago 300MB
mirrorgooglecontainers/pause-arm64 3.1 6cf7c80fe444 2 years ago 525kB
2.3.3 修改已下载的镜像标签。
docker tag mirrorgooglecontainers/kube-apiserver-arm64:v1.14.2 k8s.gcr.io/kube-apiserver:v1.14.2
docker tag mirrorgooglecontainers/kube-controller-manager-arm64:v1.14.2 k8s.gcr.io/kube-controller-manager:v1.14.2
docker tag mirrorgooglecontainers/kube-scheduler-arm64:v1.14.2 k8s.gcr.io/kube-scheduler:v1.14.2
docker tag mirrorgooglecontainers/kube-proxy-arm64:v1.14.2 k8s.gcr.io/kube-proxy:v1.14.2
docker tag mirrorgooglecontainers/pause-arm64:3.1 k8s.gcr.io/pause:3.1
docker tag mirrorgooglecontainers/etcd-arm64:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
说明:
需要将镜像repository修改与kubeadm列出的镜像名保持一致。
2.3.4 查看K8s的Docker镜像组件
docker images | grep k8s
[root@master aarch64]# docker images | grep k8s
k8s.gcr.io/kube-apiserver v1.14.2 091f78b1b081 19 months ago 207MB
k8s.gcr.io/kube-controller-manager v1.14.2 e0fa3d206e49 19 months ago 155MB
k8s.gcr.io/kube-scheduler v1.14.2 485238b2c4a5 19 months ago 82.2MB
k8s.gcr.io/kube-proxy v1.14.2 5227f1c3c8a7 19 months ago 82.7MB
k8s.gcr.io/coredns 1.3.1 7e8edeee9a1e 23 months ago 37.4MB
k8s.gcr.io/etcd 3.3.10 ad99d3ead043 2 years ago 300MB
k8s.gcr.io/pause 3.1 6cf7c80fe444 2 years ago 525kB
2.3.5 删除旧镜像。
命令如下所示
docker rmi mirrorgooglecontainers/kube-apiserver-arm64:v1.14.2
docker rmi mirrorgooglecontainers/kube-controller-manager-arm64:v1.14.2
docker rmi mirrorgooglecontainers/kube-scheduler-arm64:v1.14.2
docker rmi mirrorgooglecontainers/kube-proxy-arm64:v1.14.2
docker rmi mirrorgooglecontainers/pause-arm64:3.1
docker rmi mirrorgooglecontainers/etcd-arm64:3.3.10
docker rmi coredns/coredns:1.3.1
删除后再次查看本地镜像
[root@master aarch64]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
k8s.gcr.io/kube-scheduler v1.14.2 485238b2c4a5 19 months ago 82.2MB
k8s.gcr.io/kube-proxy v1.14.2 5227f1c3c8a7 19 months ago 82.7MB
k8s.gcr.io/kube-apiserver v1.14.2 091f78b1b081 19 months ago 207MB
k8s.gcr.io/kube-controller-manager v1.14.2 e0fa3d206e49 19 months ago 155MB
k8s.gcr.io/coredns 1.3.1 7e8edeee9a1e 23 months ago 37.4MB
k8s.gcr.io/etcd 3.3.10 ad99d3ead043 2 years ago 300MB
k8s.gcr.io/pause 3.1 6cf7c80fe444 2 years ago 525kB
三、部署K8S集群
3.1 配置hosts文件
主节点和计算节点都需要配置hosts文件。
执行vi /etc/hosts命令,修改hosts文件,添加集群所有节点的ip及hostname信息。
192.168.0.113 master master
192.168.0.226 node1 node1
每台节点的/etc/hosts文件都要修改。
3.2 配置主节点(master)
说明:重复搭建集群时,请先执行kubeadm reset命令,清除旧的K8s集群设置。
在主节点上执行集群初始化命令。
3.2.1 在主节点上执行集群初始化命令
kubeadm init --kubernetes-version=1.14.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
当看到如下信息时代表初始化成功
Your Kubernetes control-plane has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.168.0.113:6443 --token all7y6.hxs2yemaucku9dct \
--discovery-token-ca-cert-hash sha256:7e1b11d2715fd87d8aeec9a1924c87b68d36da35392ccee57b0581993dfeb821
黄框信息表示主节点配置集群需要执行的命令,红框信息表示计算节点加入集群的token命令,请保存该段命令。
说明:
计算节点不需要执行集群初始化操作。
如果在主节点初始化的时候提示:
/proc/sys/net/bridge/bridge-nf-call-iptables contents are not set to 1
可以通过执行echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables命令将其置为1(vim不可修改此文件)。执行该操作时,建议排查是否有配置代理(执行env查看),避免kubeadm init初始化超时失败,删除代理的操作:
export -n http_proxy
export -n https_proxy
export -n no_proxy
--pod-network-cidr > 3.选项用于指定kubernetes网络可以使用的IP地址段,由于后续使用Flannel网络插件,该插件固定使用的IP段为:10.244.0.0/16 。
3.2.2 配置集群
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
3.2.3 在主节点查看集群节点信息。
kubectl get node
[root@master aarch64]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady master 97s v1.14.2
3.2.4 保存主节点生成的加入集群信息。
该信息在成功初始化主节点后生成并打印,集群信息如下所示:
kubeadm join 192.168.0.113:6443 --token all7y6.hxs2yemaucku9dct \
--discovery-token-ca-cert-hash sha256:7e1b11d2715fd87d8aeec9a1924c87b68d36da35392ccee57b0581993dfeb821
注意:
该token命令可以用于二十四小时内计算节点加入集群,若token超时,可在K8S主节点通过kubeadm token create --print-join-command命令进行重新生成
3.3 配置计算点(node1)
3.3.1 计算节点加入集群
计算节点执行
kubeadm join 192.168.0.113:6443 --token all7y6.hxs2yemaucku9dct \
--discovery-token-ca-cert-hash sha256:7e1b11d2715fd87d8aeec9a1924c87b68d36da35392ccee57b0581993dfeb821
3.3.2 等待1分钟后,在主节点(master)执行kubectl get nodes
[root@master opt]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 3h7m v1.14.2
node1 NotReady <none> 83s v1.14.2
3.3.3 在主节点和计算节点上查看kubelet服务状态
systemctl status kubelet
主节点
子节点
3.4 添加Flannel网络插件
3.4.1 在主节点上执行如下命令安装Flannel网络插件。
当前版本1.14版本执行(如果无法下载,可以查看网盘附件进行本地化安装,下载地址:https://pan.baidu.com/s/1L1epcWiEI7v2C4bHo2nx3Q 提取码:1fsh)
kubectl apply -f https://gitee.com/mirrors/flannel/blob/master/Documentation/kube-flannel-old.yaml
注意:对于 Kubernetes 版本 v1.17+
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
3.4.2 安装完成后,执行kubectl get pod -n kube-system,看到kube-flannel正常运行即可
[root@master opt]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-fb8b8dccf-sgzqj 1/1 Running 0 38m
coredns-fb8b8dccf-xpx5x 1/1 Running 0 38m
etcd-master 1/1 Running 0 37m
kube-apiserver-master 1/1 Running 0 37m
kube-controller-manager-master 1/1 Running 0 37m
kube-flannel-ds-arm64-wxc6f 1/1 Running 0 98s
kube-proxy-tzb4r 1/1 Running 0 38m
kube-scheduler-master 1/1 Running 0 37m
这样我们K8S集群就搭建完成了。
四、(选配)安装Kubernetes Dashboard插件
主节点上操作即可
4.1 用openssl生成自签证书(有第三方证书可跳过)
生成证书请求的key
openssl genrsa -out dashboard.key 2048
生成证书请求
openssl req -new -out dashboard.csr -key dashboard.key -subj '/CN=<your_ip>'
<your_ip>换成自己的ip或域名。
生成自签证书
openssl x509 -days 3650 -req -in dashboard.csr -signkey dashboard.key -out dashboard.crt
这里指定了过期时间3650天,默认365天
4.2 部署Dashboard插件
4.2.1 创建部署kubernetes-dashboard的yaml文件
(文件下载地址:链接:https://pan.baidu.com/s/1L1epcWiEI7v2C4bHo2nx3Q 提取码:1fsh)
根据官方文件做了微调:
- 把cert注释掉,使用待会自己创建的cert,因为默认的证书有问题;
- 把dashboard访问方式改为NodePort,端口是31234,访问时用pod所在主机的ip加端口号即可访问;
- imagePullPolicy改为IfNotPresent,当本地找不到镜像时才从网上拉取;
注意查看镜像路径是否有效,如果无效,自行百度查找镜像源,或者到别的地方把镜像下载到本地,然后把tag改成和yaml文件中的image一致- arm镜像源修改kubernetesui/metrics-scraper-arm64:v1.0.6和kubernetesui/dashboard-arm64:v2.0.5
4.2.2 部署kubernetes-dashboard
kubectl apply -f /opt/kubernetes-dashboard.yaml
4.2.3 部署完成后还是不能访问,因为yaml文件中注释掉了kubernetes-dashboard-certs,相关的pod没跑起来,所以此时应创建certs
kubectl create secret generic kubernetes-dashboard-certs --from-file=/opt/dashboard.key --from-file=/opt/dashboard.crt -n kubernetes-dashboard
4.2.4 如果失败检查方式
一般经过以上步骤就可以访问dashboard,可以跳过这一步了,但如果此时仍不能访问,pod不是处于"running"状态,可以删除kubenetes-dashboard相关的pod,让kubelet自动生成一个新的可运行的pod
查看kubernetes-dashboard的pod名
kubectl get pods -n kubernetes-dashboard
删除该pod:
kubectl delete pod -n kubernetes-dashboard <pod名>
正确结果
[root@master /]# kubectl get pod -n kubernetes-dashboard
NAME READY STATUS RESTARTS AGE
dashboard-metrics-scraper-57c8667f5c-92fls 1/1 Running 0 5h9m
kubernetes-dashboard-69d48fd659-bw7zb 1/1 Running 0 5h9m
4.3 创建访问用户,用于访问dashboard的Service Account
kubectl create serviceaccount admin-user -n kubernetes-dashboard
4.4 为用户绑定角色,创建ClusterRoleBinding
kubectl create clusterrolebinding admin-user --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:admin-user
4.5 获取登录密钥
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
复制生成的token值即可
[root@master opt]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name: admin-user-token-64tjt
Namespace: kubernetes-dashboard
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: c882f015-39ca-11eb-9396-fa163ec97a54
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1025 bytes
namespace: 20 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTY0dGp0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJjODgyZjAxNS0zOWNhLTExZWItOTM5Ni1mYTE2M2VjOTdhNTQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.nK8gspJ8DAMzrOesHC-CGvjaYKAtahUCB9L1eQTbaeCXv-8ZT-8HVBzzCTk20XnAG30yPwOD80x_MBCksSgaw7QkImNlZVcNM3JXmaNvxFTObeg9aY_Lgdbs7r4hfAMKZd2wi1G3BaNbfAWnWxlecbOXTMYBL5PI6h5oJSuR6Fgm0IEdRT6diI_uaoan-Mqmvm_VKvj6tMl1xTqczTgnp0Hv5kwJvT0lOYx13nhjix-hfo0B2UaSGDnLcyFLrzAIOfKuAlFQMwcJndgs7hz_x7CM-UpfOvCg4oVrWkHAlspOfxRVflHXjfexUGnjGq2Rywph5h4godbTPwhLwJ4tcg
4.6 登录验证
访问我们master地址,通过浏览器访问https://IP:31234,点击继续访问
输入token值
即可看到kubernetes-dashboard UI界面
如果无法访问,可以通过以下方式查看pod状态
[root@master opt]# kubectl get secret -n kubernetes-dashboard
NAME TYPE DATA AGE
admin-user-token-zqdnf kubernetes.io/service-account-token 3 3h4m
default-token-v7v95 kubernetes.io/service-account-token 3 3h9m
kubernetes-dashboard-certs Opaque 2 3h8m
kubernetes-dashboard-csrf Opaque 1 3h9m
kubernetes-dashboard-key-holder Opaque 2 3h9m
kubernetes-dashboard-token-47xg5 kubernetes.io/service-account-token 3 3h9m
UI查看节点信息
五、卸载K8S组件
注意:
下列步骤仅仅指导用户如何手动卸载K8s组件,请勿在正常的部署过程中执行。
清空K8s集群设置。
在卸载K8s组件前,先执行kubeadm reset命令,清空K8s集群设置。
卸载管理组件。
yum erase -y kubelet kubectl kubeadm kubernetes-cni
删除基础组件镜像。
基础组件通过Docker镜像部署,因此只需要强制删除对应镜像即可卸载。
docker rmi -f k8s.gcr.io/kube-apiserver:v1.15.1
docker rmi -f k8s.gcr.io/kube-controller-manager:v1.15.1
docker rmi -f k8s.gcr.io/kube-scheduler:v1.15.1
docker rmi -f k8s.gcr.io/kube-proxy:v1.15.1
docker rmi -f k8s.gcr.io/pause:3.1
docker rmi -f k8s.gcr.io/etcd:3.3.10
docker rmi -f k8s.gcr.io/coredns:1.3.1
(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)
ARM架构安装Kubernetes集群的更多相关文章
- Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)
背景: 由于工作发生了一些变动,很长时间没有写博客了. 概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. 一.Centos7 ...
- 从0到1使用Kubernetes系列(三):使用Ansible安装Kubernetes集群
前两期的文章介绍了Kubernetes基本概念和架构,用Kubeadm+Ansible搭建Kubernetes集群所需要的工具及其作用.本篇介绍怎么使用Ansible安装Kubernetes集群. 启 ...
- CentOS 7.5 使用 yum 安装 Kubernetes 集群(二)
一.安装方式介绍 1.yum 安装 目前CentOS官方已经把Kubernetes源放入到自己的默认 extras 仓库里面,使用 yum 安装,好处是简单,坏处也很明显,需要官方更新 yum 源才能 ...
- VirtualBox上使用kubeadm安装Kubernetes集群
之前一直使用minikube练习,为了更贴近生产环境,使用VirtualBox搭建Kubernetes集群. 为了不是文章凌乱,把在搭建过程中遇到的问题及解决方法记在了另一篇文章:安装Kubernet ...
- 安装Kubernetes集群时遇到的问题及解决方法
在搭建Kubernetes集群时遇到一些问题,记录在这里. 搭建过程在另一篇文章:VirtualBox上使用kubeadm安装Kubernetes集群 1. 虚拟机安装完CentOS7登录时遇到war ...
- Centos7上安装Kubernetes集群部署docker
一.安装前准备1.操作系统详情需要三台主机,都最小化安装 centos7.3,并update到最新 [root@master ~]# (Core) 角色 主机名 IPMaster master 192 ...
- 二进制文件方式安装kubernetes集群
所有操作全部用root使用者进行,高可用一般建议大于等于3台的奇数,我们使用3台master来做高可用 练习环境说明: 参考GitHub master: kube-apiserver,kube-con ...
- 基于kubeamd初始化安装kubernetes集群
环境:master,etcd 172.16.1.5node1 172.16.1.6node2 172.16.1.7前提:1.基于主机名通信,/etc/hosts 2.时间同步3.关闭firewalld ...
- centos7使用kubeadm安装kubernetes集群
参考资料:官方文档 一.虚拟机安装 配置说明: windows下使用vbox,centos17.6 min版,kubernetes的版本是1.14.1, 安装如下三台机器: 192.168.56.15 ...
随机推荐
- 类和对象在JVM中是如何存储的,竟然有一半人回答不上来!
前言 这篇博客主要来说说类与对象在JVM中是如何存储的,由于JVM是个非常庞大的课题,所以我会把他分成很多章节来细细阐述,具体的数量还没有决定,当然这不重要,重点在于是否可以在文章中学到东西,是否对J ...
- Adaboost算法的一个简单实现——基于《统计学习方法(李航)》第八章
最近阅读了李航的<统计学习方法(第二版)>,对AdaBoost算法进行了学习. 在第八章的8.1.3小节中,举了一个具体的算法计算实例.美中不足的是书上只给出了数值解,这里用代码将它实现一 ...
- osd磁盘空间足够无法写入数据的分析与解决
前言 这个问题的来源是ceph社区里面一个群友的环境出现在85%左右的时候,启动osd报错,然后在本地文件系统当中进行touch文件的时候也是报错,df -i查询inode也是没用多少,使用的也是in ...
- 如何测量Ceph OSD内存占用
前言 这个工具我第一次看到是在填坑群里面看到,是由研发-北京-蓝星同学分享的,看到比较有趣,就写一篇相关的记录下用法 火焰图里面也可以定位内存方面的问题,那个是通过一段时间的统计,以一个汇总的方式来查 ...
- API简介(二)
API简介(二) API简介(一)一文中,介绍了使用API的目的.设计.发行政策以及公共API的含义,本篇主要介绍API的用法,从库和框架.操作系统.远程API.Web API四个方面展开. 库和框架 ...
- HBuilderX SVN地址更改(SVN服务器IP地址变更)
HBuilderX编辑器中无法修改SVN地址,需要手动在SVN工具中修改 修改步骤: 1.右键编辑器中的SVN项目,选择打开文件所在目录 2.目录中空白处右键,选择TortoiseSVN --> ...
- c++11-17 模板核心知识(五)—— 理解模板参数推导规则
Case 1 : ParamType是一个指针或者引用,但不是universal reference T& const T& T* Case 2 : ParamType是Univers ...
- 01、Spring环境搭建
环境:SpringSource-Tool-3.9.9.Eclipse4.10.0 首先,我们需要解决的是Spring包的问题,我看了百度.CSDN很多都是直接一上来随便丢个包就可以安装了,搞得我弄了一 ...
- C# Random类的正确应用
Random类介绍 Random类一个用于产生伪随机数字的类.这里的伪随机表示有随机性但是可以基于算法模拟出随机规律. Random类的构造方式有两种. Random r= new Random(). ...
- Mac下载工具folx如何下载常用的软件
最近,多档综艺节目都开展得如火如荼,比如<中国新说唱>.<这就是街舞>等深受年轻人喜欢的综艺节目.虽然手机端也可观看,但可以的话,当然是使用电脑屏幕观看节目比较过瘾. 接下来, ...