栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

运维 - 实践篇(五)- 基础 K8S 单机环境搭建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

运维 - 实践篇(五)- 基础 K8S 单机环境搭建

运维 - 实践篇(五)- 基础 K8S 单机环境搭建

文章目录

运维 - 实践篇(五)- 基础 K8S 单机环境搭建

一、说明

1. 服务器配置介绍 二、基础K8S单机环境搭建流程

1. 查看服务器网卡IP2. 修改主机名称3. 添加 Host4. 关闭防火墙5. 关闭 selinux6. 关闭 swap 交换区间7. 配置 Iptables 链路8. 时间同步10. 添加 K8S yum 源11. 安装 kubeadm、kubelet、kubectl12. 安装 k8s13. 配置 kubectl 工具 三、配置 k8s 网络插件

1. 安装 calico 网络插件2. 查看结果 四、K8S单机特殊处理

1. Master 节点污点处理2. 安装补全命令的包 五、基于K8S单机部署中间服务

修订时间修订内容备注
2022/02/02完成 K8S 单机环境基础环境搭建create

其实在整理这篇文章之前,我先搭建了基于 Docker 的 Jenkins 自动化部署环境,但是,遇到了一下几点问题:

1、我通过 Docker 搭建的 Jenkins 打包运行 jar 包之后,宿主机无法正常访问。于是我索性执行打 docker 镜像。

2、讲道理,不应该通过 Docker 的方式去搭建 jenkins 环境。最后 jenkins 的环境具体用什么方式搭建还有待确定。

以下我们开始搭建基础的 K8S 单机环境,这里同样可以选用 Minikube 搭建 K8S。

一、说明 1. 服务器配置介绍

这里我换了一台配置稍微高一点的主机,用于部署自己的服务和相关的中间件。可以参考之前的文章进行服务器的初始化配置以及 Docker 开发环境搭建。

主机名配置公网IP / 网卡IP角色
Tx-Code-424核16G42.192.222.62 / 10.0.4.16Master
二、基础K8S单机环境搭建流程

虽然说是单机部署,但在流程上做了集群部署的准备。

1. 查看服务器网卡IP
$ ip addr 
2. 修改主机名称
$ hostnamectl set-hostname k8s-master && bash
3. 添加 Host
$ cat > /etc/hosts << EOF
10.0.4.16 k8s-master

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

EOF
4. 关闭防火墙
$ systemctl stop firewalld
$ systemctl disable firewalld
5. 关闭 selinux
$ setenforce 0
$ sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
6. 关闭 swap 交换区间
# 临时
$ swapoff -a 
# 永久
$ sed -i 's/.*swap.*/#&/' /etc/fstab
7. 配置 Iptables 链路
$ cat > /etc/sysctl.d/k8s.conf < 
8. 时间同步 
yum install ntpdate -y
ntpdate time.windows.com
10. 添加 K8S yum 源
$ cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
11. 安装 kubeadm、kubelet、kubectl
# 安装版本是v1.21.5
yum -y install kubelet-1.21.5-0 kubectl-1.21.5-0 kubeadm-1.21.5-0
systemctl enable kubelet
12. 安装 k8s

kubeadm init 命令的常用选项说明:

kubernetes-version :kubernetes 程序组件的版本号,尽量与安装的 kubelet 版本号相同image-repository :指定要使用的镜像仓库 默认: gar.ioapiserver-advertise-address :一般为 Master 节点用于集群内通信的IP地址,填主机的网卡IP地址 10.0.4.16,也可以填 0.0.0.0 (这里我自己填的这个)service-cidr :Service 网络的地址范围,其值为 CIDR 格式的网络地址。默认为 10.96.0.0/12pod-network-cidr :Pod 网络的地址范围,其值为 CIDR 格式的网络地址。通常 Flannel 的网络插件默认值为 10.244.0.0/16 ;Calico 插件的默认值为 192.168.0.0/16

kubeadm init 
--apiserver-advertise-address 10.0.4.16 
--image-repository registry.aliyuncs.com/google_containers 
--kubernetes-version v1.21.5 
--service-cidr 10.96.0.0/12 
--pod-network-cidr 10.244.0.0/16 
--ignore-preflight-errors all 
--token-ttl 0

保存如下提示信息,便于后续加入节点

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

Alternatively, if you are the root user, you can run:

  export KUBEConFIG=/etc/kubernetes/admin.conf

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 10.0.4.16:6443 --token uu6f09.z498pb30kz87e39m 
        --discovery-token-ca-cert-hash sha256:f8432251857330193c6021b661cb65ca108da8f52034203a2881d24347d4a10f 
13. 配置 kubectl 工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
三、配置 k8s 网络插件 1. 安装 calico 网络插件

yum install -y ca-certificates

# 获取 calico.yaml
wget https://docs.projectcalico.org/manifests/calico.yaml 

sed -i "s#192.168.0.0/16#10.244.0.0/16#" calico.yaml

kubectl apply -f calico.yaml
2. 查看结果
kubectl get node
四、K8S单机特殊处理 1. Master 节点污点处理

单集版的k8s安装后, 无法部署服务。因为默认master不能部署pod,有污点, 需要去掉污点或者新增一个node,我这里是去除污点。

#执行后看到有输出说明有污点
kubectl get node -o yaml | grep taint -A 5 
#执行这句就行,就是取消污点
kubectl taint nodes --all node-role.kubernetes.io/master-   
2. 安装补全命令的包
yum -y install bash-completion
kubectl completion bash
source /usr/share/bash-completion/bash_completion
kubectl completion bash >/etc/profile.d/kubectl.sh
source /etc/profile.d/kubectl.sh

cat  >>  /root/.bashrc < 
五、基于K8S单机部署中间服务 
$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pods,svc
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/727577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号