Kubernetes_v1.18.2环境搭建 博主亲自实践可用

简介: Kubernetes_v1.18.2环境搭建 博主亲自实践可用

环境要求

  • 至少2台 2核4G 的服务器
  • 不能使用 localhost 作为hostname
  • 所有节点网络必须互通

博主这边准备的是 3台 2核4G的ubuntu18.04 虚拟机。

切换apt为阿里云源

  • /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

修改hostname

vi /etc/hostname

禁用交换内存

这个会导致某个程序占用过多导致机器死机 少用交换内存

swapoff -a

设置桥接流量要求

cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

安装docker 这里直接用ubuntu apt的

  • docker
apt install docker.io

配置docker阿里云加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://9fx2xqey.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装kubeadm

  • kubeadm:引导集群的命令。
  • kubelet:在群集中所有计算机上运行的组件,它执行诸如启动Pod和容器之类的操作。
  • kubectl:用于与您的集群通信的命令行工具。

在上述安装 kubeadm 的过程中,kubeadm 和 kubelet、kubectl、kubernetes-cni 这几个二进制文件都会被自动安装好。

阿里提供了镜像,方便大家下载 详情看https://developer.aliyun.com/mirror/kubernetes?spm=a2c6h.13651102.0.0.3e221b11VlJoux

apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF  
apt-get update
apt-get install -y kubeadm

提前拉起所需镜像

sudo docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.2
sudo docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.2
sudo docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.2
sudo docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.18.2
sudo docker pull registry.aliyuncs.com/google_containers/pause:3.2
sudo docker pull registry.aliyuncs.com/google_containers/etcd:3.4.3-0
sudo docker pull registry.aliyuncs.com/google_containers/coredns:1.6.7

将阿里云的惊喜重新打上tag 让kubuadm可以识别到

sudo docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.18.2 k8s.gcr.io/kube-apiserver:v1.18.2
sudo docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.18.2 k8s.gcr.io/kube-controller-manager:v1.18.2
sudo docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.18.2 k8s.gcr.io/kube-scheduler:v1.18.2
sudo docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.18.2 k8s.gcr.io/kube-proxy:v1.18.2
sudo docker tag registry.aliyuncs.com/google_containers/pause:3.2 k8s.gcr.io/pause:3.2
sudo docker tag registry.aliyuncs.com/google_containers/etcd:3.4.3-0 k8s.gcr.io/etcd:3.4.3-0
sudo docker tag registry.aliyuncs.com/google_containers/coredns:1.6.7 k8s.gcr.io/coredns:1.6.7

虚拟机可以开始复制了。

环境说明

  • node1 192.168.28.131
  • node2 192.168.28.100
  • node3 192.168.28.99

集群搭建

创建Master节点

  • 查看Kubernetes版本
kubelet --version
Kubernetes v1.18.2
  • 查看搭建k8s所需镜像
kubeadm config images list
k8s.gcr.io/kube-apiserver:v1.18.2
k8s.gcr.io/kube-controller-manager:v1.18.2
k8s.gcr.io/kube-scheduler:v1.18.2
k8s.gcr.io/kube-proxy:v1.18.2
k8s.gcr.io/pause:3.2
k8s.gcr.io/etcd:3.4.3-0
k8s.gcr.io/coredns:1.6.7

因为这些都在国外,所以我们要在国内下载,并能让kubuadm识别到,这些镜像是可以在初始化master之前提前下载的。

初始化

sudo systemctl enable docker.service # 启动docker服务
vim /etc/docker/daemon.json  # k8s要求cgroups为systemd
{
  "registry-mirrors": ["https://v16stybc.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}
  • Master开搞
sudo kubeadm init
# 有些人在初始化的时候就指定了pod的ip等。我们这里还没有安装网络插件 等会我们再弄 先直接初始化 有想了解一下默认值的可以去看官网
# 成功了
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.28.131:6443 --token 1e0gpf.tnph6fuvlf1rphxy \
    --discovery-token-ca-cert-hash sha256:3de217f1be9b6cb646d9fe1b68ed04a49be25103ee33062d6fc63a0ca750ccd5
  • 使用集群 普通用户执行
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • root 用户 执行
export KUBECONFIG=/etc/kubernetes/admin.conf

安装网络插件

Kubernetes为了网络的扩展性,有一套网络插件的接口(CNI),具体流行插件实现有:FlannelCalicoCanalWeave 等等

这些网络主要是为我们的Pod提供统一网络

我们这里先选择 Weave,后面再来说一下这些网络插件的差别

  • 安装 Weave
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
kubectl get pods -n kube-system # 查看系统pod是否正常运行 全部正常运行就可以啦
kubectl get pods #能正常运行就代表ok
kubectl get pods --all-namespaces # 查看一下网络pod是否正常运行

部署worker节点

worker node很简单,不需要初始化那些master节点的东西,只需安装dockerkubeadm即可。

node2node3上执行加入集群命令

kubeadm join 192.168.28.131:6443 --token 1e0gpf.tnph6fuvlf1rphxy \
    --discovery-token-ca-cert-hash sha256:3de217f1be9b6cb646d9fe1b68ed04a49be25103ee33062d6fc63a0ca750ccd5

Master 上查看集群节点

kubect get nodes

查错命令

# 查看日志
journalctl -f -u kubelet
# 删除集群节点
kubectl delete node node3
相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
7月前
|
存储 弹性计算
阿里云服务器一小时收费价格,不同ECS是实例按量付费1小时费用整理
阿里云ECS云服务器按小时计费,价格根据实例类型和配置不同而异。例如经济型e实例2核2G配置0.094元/小时,通用算力型u1实例2核4G配置0.351元/小时,计算型c9i实例2核4G配置0.3873元/小时,4核8G配置0.7746元/小时。不同规格实例价格差异明显,具体以官网信息为准。
|
12月前
|
存储 数据管理 分布式数据库
《一文读懂分布式数据库:打破数据存储的边界》
随着数据量的激增,单台服务器难以满足存储和处理需求,分布式数据库应运而生。它通过将数据分散存储在多个节点上,实现高可扩展性、高可用性、性能提升等优势。例如,跨国公司可将各地数据存储在本地节点,降低传输成本并提高稳定性。此外,分布式数据库还具备数据分布灵活性、成本优势及一致性保障,为企业管理海量数据提供了高效解决方案。其广泛应用在互联网、金融等领域,展现出巨大潜力。
551 0
|
9月前
|
监控 安全 数据安全/隐私保护
Windows 账号管理与安全指南
本文详细介绍了Windows账号管理与安全防护方法,涵盖基础命令(如`net user`和`whoami`)、隐藏账户技术及安全措施。通过学习账户创建、权限管理和状态调整等操作,结合密码策略配置、弱密码防御和系统审计,帮助管理员提升系统安全性,防范潜在威胁。同时提醒注意隐藏账户可能带来的风险,建议定期检查和监控系统账户状态,确保安全可控。
775 0
|
11月前
|
存储 弹性计算 人工智能
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析
阿里云服务器ECS g8i实例怎么样?对于很多企业用户说,云服务器的性能、安全性和AI能力是用户非常关注的。无论是处理大规模数据、运行复杂算法,还是保障业务应用的安全,都需要云服务器具备卓越的性能和强大的功能。阿里云推出的第八代云服务器ECS g8i实例,凭借其卓越的性能、增强的AI能力和全面的安全防护,成为了市场关注的焦点。本文将为大家解析ECS g8i实例的技术特性、产品优势、适用场景及与同类产品的对比,同时介绍其收费标准和活动价格,以供大家了解和选择。
阿里云服务器ECS g8i实例怎么样?新一代g8i实例技术特性与场景应用解析
|
机器学习/深度学习 机器人
《解密奖励函数:引导智能体走向最优策略》
在强化学习中,奖励函数是核心要素,指导智能体学习与决策。它通过明确目标、合理分配奖励和考虑环境因素,激励智能体探索最优策略。设计恰当的奖励函数能让智能体在复杂环境中不断优化行为,实现长期目标。即时、延迟和全局奖励的不同类型,以及奖励函数的稳定性和适应性,都是设计时需关注的重点。
594 13
|
存储 数据可视化 搜索推荐
「从0到1搭建知识库:设计团队的效率革命」
在快节奏的设计行业中,团队协作的效率和质量至关重要。本文探讨了如何通过搭建高效的设计团队知识库解决信息分散、规范不统一等问题,提升团队协同效率。内容涵盖知识库的核心价值、常见痛点、搭建方法、运营策略及未来趋势,帮助团队实现从混乱到高效的转变。知识库不仅能统一设计规范、沉淀最佳实践,还能提高新人上手速度。文章还介绍了内容框架设计、流程化管理、工具赋能等黄金方法论,并展望了智能化与场景化的未来趋势。
886 10
|
人工智能 数据挖掘 Python
💡灵感爆发!AI Prompt创意引导,让商业数据分析报告也能讲故事
【8月更文挑战第1天】在商业领域, 数据分析报告常被视为枯燥的数据堆砌。但AI技术, 尤其是AI Prompt的创意引导功能, 正革新数据呈现方式。传统报告重准确性轻生动性; 而AI Prompt创意引导下的报告则如电影般, 通过故事化叙述使复杂洞察变得生动有趣。例如分析电商平台季节性销售时, AI Prompt可以生成主题为“穿越四季购物之旅”的创意指令, 将数据编织成引人入胜的故事篇章, 使读者不仅能获取商业洞察, 更能感受到数据背后的情感与温度, 大大提升报告的吸引力和传播力。这标志着数据分析报告新时代的到来。
310 0
|
Kubernetes 文件存储 容器
【Azure K8S | AKS】在中国区AKS上遇见ImagePullBackOff时的替代方案
【Azure K8S | AKS】在中国区AKS上遇见ImagePullBackOff时的替代方案
267 0
|
存储 C++
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
729 1

热门文章

最新文章