首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
kubernetes与velero的第一次尝试
2
在Kubernetes中如何针对Namespace进行资源限制?
3
kubernetes之metrics-server安装与配置
4
kubernetes部署metrics-server
5
Kubernetes1.20.9摘掉一个master节点再重新加入(ETCD需要注意的)
6
Kubernetes 1.17.17升级到1.18.20
7
Kubernetes 1.18.20升级到1.19.12
8
Kubernetes 1.19.12升级到1.20.9(强调一下selfLink)
9
Kubernetes 1.16.15升级到1.17.17
10
使用 kainstall 工具一键部署 kubernetes 高可用集群
11
附034.Kubernetes_v1.21.0高可用部署架构二
12
附016.Kubernetes_v1.17.4高可用部署
13
附022.Kubernetes_v1.18.3高可用部署架构一
14
附024.Kubernetes_v1.18.3高可用部署架构二
15
使用 StatefulSet 部署 etcd 集群
16
Kubernetes 稳定性保障手册 -- 极简版
17
Linux(centos7)离现安装kubernetes1.19.2和docker——组件部分
18
docker register 私有仓库部署 - http模式
19
KubeSphere 开源 KubeEye:Kubernetes 集群自动巡检工具
20
K8S 中的 CPUThrottlingHigh 到底是个什么鬼?
21
全链路分布式跟踪系统 Apache SkyWalking 入门教程
22
pod Evicted的状态究竟是何人所为
23
使用 ezctl 工具部署和管理 Kubernetes 集群
24
Kubernetes部署策略详解
25
kubernetes容器探针检测
26
使用Spring Boot实现动态健康检查HealthChecks
27
真一文搞定 ingress-nginx 的使用
28
K8S备份、恢复、迁移神器 Velero
29
一次关于k8s kubectl top 和 contained ps 不一致的问题探究
30
kubernetes备份恢复之velero
31
使用 Velero 进行集群备份与迁移
32
TKE集群中nginx-ingress使用实践
33
使用velero进行kubernetes灾备
34
Kubernetes 映射外部服务
35
运维体系建设套路
36
k8s解决pod调度不均衡的问题
37
ingress中虚拟路径解决方案
38
容器下的两地三中心建设
39
k8s集群外的主机访问pod的解决方案
40
k8s基础-健康检查机制
41
k8s基础-标签使用
42
ingress-nginx请求改写
43
nginx ingress server alias 多域名多证书问题
44
JAVA | Java 解决跨域问题 花式解决跨域问题
45
如何通过ingress-nginx实现应用灰度发布?
46
在Kubernetes(k8s)中使用GPU
47
使用 Prometheus-Operator 监控 Calico
48
使用Kubespray部署Kubernetes集群
49
云原生下的CI/CD:Argo CD 详解,手把手教你入门
50
Pod的健康检查机制
清单首页k8s文章详情

Linux(centos7)离现安装kubernetes1.19.2和docker——组件部分

获取rpm离线包

可以去网上下载,rpm包是有依赖的,担心不完整,最好的办法是找一台能下载的机器,比如本地、开发、测试环境的机器导出……完美~

先安装yum untils工具,然后使用yumdownloader 下载所有包及依赖

代码语言:javascript
复制
yum install yum-utils

然后开始导出包

代码语言:javascript
复制
#导出k8s
yumdownloader --destdir=/tmp/k8s --resolve kubelet-1.19.2 kubeadm-1.19.2 kubectl-1.19.2
#导出docker
yumdownloader --destdir=/tmp/docker --resolve docker-ce-19.03.12 docker-ce-cli-19.03.12 containerd.io-19.03.12

指定安装1.19.2,写法如kubeadm-1.19.2 ,不加版本号会安装最新版。 注意:docker与kubernetes的版本要一致

打包一下方便上传

代码语言:javascript
复制
tar -cvf docker19.03.12_rpm.tar /tmp/docker/
tar -cvf k8s1.19.2_rpm.tar /tmp/rpm/

也可以直接下载我的:

百度云盘: 链接: https://pan.baidu.com/s/1oTyqta-Q97LdpnggmV_p8g 密码: k1ha

安装

先上传服务器,然后在服务器上进行安装

代码语言:javascript
复制
scp *.tar 10.99.25.30:~/

解压

代码语言:javascript
复制
tar -xvf  k8s1.19.2_rpm.tar
tar -xvf  docker19.03.12_rpm.tar

安装

代码语言:javascript
复制
#安装k8s
yum localinstall rpm/* -y
#安装dockder
yum localinstall docker/* -y

系统配置相关(所有k8s机器上都要做)

准备工作:

假如我们有三台机器: 192.168.9.1 用做master 192.168.9.2 用做node1 192.168.9.3 用做node2

  • 配置机器间互信(使用ssh-keygen)
  • 修改hosts
代码语言:javascript
复制
sudo vi  /etc/hosts
#追加
192.168.9.1     master
192.168.9.2     node1
192.168.9.3     node2
  • 配置docker aliyun regisitry(必要配置,否则k8s无法加载导入的docker images)
代码语言:javascript
复制
sudo vi /etc/docker/daemon.json
代码语言:javascript
复制
{
   
  "debug": true,
  "experimental": false,
  "registry-mirrors": [
     "https://docker.mirrors.ustc.edu.cn",
     "https://registry.docker-cn.com"
  ]
}

如果配置本地registry,需要添加:

代码语言:javascript
复制
"insecure-registries": [
    "192.168.88.201:5000"
  ]

1.关swap

代码语言:javascript
复制
#临时关闭,避免重起
sudo swapoff -a
#在配置中永久关闭
sudo vi /etc/fstab
#注掉如下配置
#/dev/mapper/starbucks-swap swap swap defaults 0 0

2.关闭selinux

代码语言:javascript
复制
#临时关闭
setenforce 0
#永久关闭
vim /etc/selinux/config
#将SELINUX=enforcing改为SELINUX=disabled。

3.配置ip6,避免路由告警

代码语言:javascript
复制
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
#刷新一下
sysctl --system

4.改k8s cgroup参数同docker一致

代码语言:javascript
复制
sudo vi /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
#把sytemed 改成 cgroupfs

这个要先查看docker info ,查下docker的cgroup是哪种

5.启动docker 和 k8s sudo systemctl daemon-reload && sudo systemctl enable –now kubelet sudo systemctl start docker sudo systemctl status kubelet

以上所有服务器执行

以下在master执行

注意:执行master 初始化之前,先导入docker image

参考:Linux(centos7)离线安装Kubernetes1.19.2之——image导入导出

初始化k8s

  • 重置一下(可加 -f 参数强制删除)
代码语言:javascript
复制
kubeadm reset
  • 初始化
代码语言:javascript
复制
kubeadm init --kubernetes-version=v1.19.2 --pod-network-cidr=10.244.0.0/16

也可以使用配置文件初始化

代码语言:javascript
复制
rm -f ./kubeadm-config.yaml
cat <<EOF > ./kubeadm-config.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.19.2
imageRepository: registry.aliyuncs.com/k8sxio
controlPlaneEndpoint: "${APISERVER_NAME}:6443"
networking:
  serviceSubnet: "10.96.0.0/16"
  podSubnet: "${POD_SUBNET}"
  dnsDomain: "cluster.local"
EOF

使用配置文件初始化k8s

代码语言:javascript
复制
kubeadm init --config=kubeadm-config.yaml --upload-certs

参考:https://kubernetes.io/zh/docs/reference/setup-tools/kubeadm/kubeadm-init/

  • 创建node join时使用的token
代码语言:javascript
复制
kubeadm token create --print-join-command

以下在node执行

代码语言:javascript
复制
kubeadm join --token 1ff84c.b7828d504656ba64 192.168.12.21:6443 --discovery-token-ca-cert-hash sha256:ceb2b93ce7543174b8fa87628fbe1f3926b5206915fee06629195ea8b4b89fe7 

开始使用

1.先添加k8s环境

代码语言:javascript
复制
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile
source ~/.bash_profile

2.使用

代码语言:javascript
复制
kubectl get nodes

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100331.html原文链接:

下一篇
举报
领券