2026/1/2 21:59:46
网站建设
项目流程
centos做网站,山西高端建设网站,wordpress生成xml,竞价推广托管服务今天来验证在uos server 1070e版本上部署Kubernetes#xff0c;我在这里还是使用虚拟机方式部署验证#xff0c;使用集群由1个控制平面节点 1个工作节点组成#xff0c;节点使用containerd作为容器运行时#xff0c;集群使用flannel作为Pod网络插件。
1. 环境准备 1…今天来验证在uos server 1070e版本上部署Kubernetes我在这里还是使用虚拟机方式部署验证使用集群由1个控制平面节点 1个工作节点组成节点使用containerd作为容器运行时集群使用flannel作为Pod网络插件。1. 环境准备1系统分区要求不要创建swap分区若已安装的系统存在swap分区执行swapoff -a临时关闭2系统分区要求需开启everything、Kubernetes、Preview仓库2. 部署Kubernetes1安装需要软件包安装CRI容器运行时、CRI命令行工具、CNI网络插件、Kubernetes# yum install -y containerd runc cri-tools containernetworking-plugins cni-plugin-flannel kubernetes-node kubernetes-client kubernetes-kubeadm2主机名配置# hostnamectl set-hostname control# hostnamectl set-hostname node13编辑hosts文件# cat /etc/hosts EOF192.168.15.58 control192.168.15.59 node1EOF4关闭防火墙 selinux需要在所有节点执行# systemctl disable --now firewalld# setenforce 0# sed -i s/^SELINUX.*/SELINUXdisabled/ /etc/selinux/config5其他系统相关配置开启IPv4数据包转发# sed -i s/net.ipv4.ip_forward0/net.ipv4.ip_forward1/g /etc/sysctl.conf sysctl -p开启containerd和kubelet服务# systemctl enable --now containerd# systemctl enable kubelet6离线导入k8s相关镜像可以先在uos registry.uniontech.com拉取容器镜像手动导入离线容器镜像# ctr -n k8s.io images import /usr/share/k8s-container-images/kube-apiserver.tar# ctr -n k8s.io images import /usr/share/k8s-container-images/kube-controller-manager.tar# ctr -n k8s.io images import /usr/share/k8s-container-images/kube-scheduler.tar# ctr -n k8s.io images import /usr/share/k8s-container-images/kube-proxy.tar# ctr -n k8s.io images import /usr/share/k8s-container-images/coredns.tar# ctr -n k8s.io images import /usr/share/k8s-container-images/pause.tar# ctr -n k8s.io images import /usr/share/k8s-container-images/etcd.tar# ctr -n k8s.io images import /usr/share/k8s-container-images/flannel.tar都导入完成后开始正式部署集群这里可以记录一下如果registry.uniontech.com访问不了也可以直接用k8s社区的容器镜像我自己测试x86架构的是可以的7master节点初始化# kubeadm init --pod-network-cidr192.168.15.0/24初始化成功后会看到如下图所示输出注意记录下命令输出中这串后续加入work节点会用到配置集群配置文件运行kubectl执行如下命令# mkdir -p $HOME/.kube# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config# sudo chown $(id -u):$(id -g) $HOME/.kube/config查看当前集群节点# kubectl get node由于尚未部署网络插件当前集群中的master节点为NotReady状态8部署flannel网络插件# kubectl apply -f kube-flannel.ymlkube-flannel.yml 我贴出来了但是在复制粘贴时候需要注意格式---kind: NamespaceapiVersion: v1metadata:name: kube-flannellabels:pod-security.kubernetes.io/enforce: privileged---kind: ClusterRoleapiVersion: rbac.authorization.k8s.io/v1metadata:name: flannelrules:- apiGroups:- resources:- podsverbs:- get- apiGroups:- resources:- nodesverbs:- list- watch- apiGroups:- resources:- nodes/statusverbs:- patch---kind: ClusterRoleBindingapiVersion: rbac.authorization.k8s.io/v1metadata:name: flannelroleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: flannelsubjects:- kind: ServiceAccountname: flannelnamespace: kube-flannel---apiVersion: v1kind: ServiceAccountmetadata:name: flannelnamespace: kube-flannel---kind: ConfigMapapiVersion: v1metadata:name: kube-flannel-cfgnamespace: kube-flannellabels:tier: nodeapp: flanneldata:cni-conf.json: |{name: cbr0,cniVersion: 0.3.1,plugins: [{type: flannel,delegate: {hairpinMode: true,isDefaultGateway: true}},{type: portmap,capabilities: {portMappings: true}}]}net-conf.json: |{Network: 192.168.15.0/24,Backend: {Type: vxlan}}---apiVersion: apps/v1kind: DaemonSetmetadata:name: kube-flannel-dsnamespace: kube-flannellabels:tier: nodeapp: flannelspec:selector:matchLabels:app: flanneltemplate:metadata:labels:tier: nodeapp: flannelspec:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: kubernetes.io/osoperator: Invalues:- linuxhostNetwork: truepriorityClassName: system-node-criticaltolerations:- operator: Existseffect: NoScheduleserviceAccountName: flannelinitContainers:- name: install-cniimage: registry.uniontech.com/uos-app/flannel:v0.19.1command:- cpargs:- -f- /etc/kube-flannel/cni-conf.json- /etc/cni/net.d/10-flannel.conflistvolumeMounts:- name: cnimountPath: /etc/cni/net.d- name: flannel-cfgmountPath: /etc/kube-flannel/containers:- name: kube-flannelimage: registry.uniontech.com/uos-app/flannel:v0.19.1command:- /usr/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: 100mmemory: 50Milimits:cpu: 100mmemory: 50MisecurityContext:privileged: falsecapabilities:add: [NET_ADMIN, NET_RAW]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespace- name: EVENT_QUEUE_DEPTHvalue: 5000volumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/- name: xtables-lockmountPath: /run/xtables.lockvolumes:- name: runhostPath:path: /run/flannel- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg- name: xtables-lockhostPath:path: /run/xtables.locktype: FileOrCreate查看flannel相关pod为Running状态并且当前集群中的master节点变为Ready状态如下图所示# kubectl get node# kubectl get pod -n kubu-flannel9加入worker节点在worker节点上执行上面kubeadm init命令输出信息中在master节点上查看当前集群节点信息可以看到当前工作节点已加入集群示例输出如下图到这里k8s的集群就部署完成了今天我在uos上面k8s集群真的是花了不少时间主要是containernetworking-plugins包在之前centos上面没有导致我的CNI网络插件一直都是NotReady状态。