当前位置: 首页 > news >正文

江油建设局网站做盗版电影网站

江油建设局网站,做盗版电影网站,萍乡网站优化,wordpress 转移K8S Kubeadm案例实战 Kubeadm 是一个K8S部署工具,它提供了kubeadm init 以及 kubeadm join 这两个命令来快速创建kubernetes集群。 Kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。它故意被设计为只关心启动集群,而不是之前的节点准备工作…

K8S Kubeadm案例实战

Kubeadm 是一个K8S部署工具,它提供了kubeadm init 以及 kubeadm join 这两个命令来快速创建kubernetes集群。

Kubeadm 通过执行必要的操作来启动和运行一个最小可用的集群。它故意被设计为只关心启动集群,而不是之前的节点准备工作。同样的诸如安装各种各样值得拥有的插件,例如Kubernetes Dashboard、监控解决方案以及特定云提供商的插件,这些都不在它负责的范围。

相反我们期望由一个基于 kubeadm 从更高层设计的更加合适的工具来做这些事情;并且,理想情况下,使用 kubeadm 作为所有部署的基础将会使得创建一个符合期望的集群变得容易。

Kubeadm:用于初始化K8S Cluster的工具,会用到Kubelet组件服务,运行在Cluster所有节点上,负责调用Docker指令,启动POD和容器。kubectl:kubectl是kubenetes命令行工具,通过Kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件。

在机器上手动安装 docker、kubeadm、kubelet、kubectl 几个二进制文件,然后才能再容器化部署其他 Kubernetes 组件。主要通过kubeadm init初始化,初始化K8S集群的流程如下:

  • 检查工作(Preflight Checks):检查Linux内核版本、Cgroups模块可用性、组件版本、端口占用情况、Docker等依赖情况;
  • 生成对外提供服务的CA证书及对应的目录;
  • 生成其他组件访问 kube-apiserver 所需的配置文件;
  • 为Master组件生成应用容器的配置文件,利用这些配置文件,通过Kubernetes 中特殊的容器启动方法:“Static Pod”(Kubeadm init-Kubelet启动时自动加载固定目录的 Pod YAML 文件并启动)-Docker引擎-启动kube-apiserver、kube-controller-manager、kube-scheduler 三个 Master 组件。同时还会生成 Etcd 的 Pod YAML 文件;
  • 为集群生成一个Bootstrap token,其他节点加入集群的机器和 Apiserver打交道,需要获取相应的证书文件,所以Bootstrap token需要扮演安全验证的角色;
  • 安装默认插件,例如:Kube-proxy 和Core DNS,分别提供集群的服务发现和 DNS 功能。
    在这里插入图片描述
    1)安装Kubeadm工具

#安装Kubeadm;
yum install -y kubeadm-1.20.4 kubelet-1.20.4 kubectl-1.20.4
#启动kubelet服务
systemctl enable kubelet.service
systemctl start kubelet.service

2)Kubeadm常见指令操作;


kubeadm init 启动一个 Kubernetes 主节点
kubeadm join 启动一个 Kubernetes 工作节点并且将其加入到集群
kubeadm upgrade 更新一个 Kubernetes 集群到新版本
kubeadm config 如果使用 v1.7.x 或者更低版本的 kubeadm 初始化集群,您需要对集群做一些配置以便使用 kubeadm upgrade 命令
kubeadm token 管理 kubeadm join 使用的令牌
kubeadm reset 还原 kubeadm init 或者 kubeadm join 对主机所做的任何更改
kubeadm version 打印 kubeadm 版本
kubeadm alpha 预览一组可用的新功能以便从社区搜集反馈

K8S Master节点实战

1)执行kubeadm init初始化安装Master相关软件;

kubeadm init --control-plane-endpoint=192.168.1.146:6443 --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.20.4 --service-cidr=10.10.0.0/16   --pod-network-cidr=10.244.0.0/16   --upload-certs

2)根据如上指令操作,执行成功,如图所示:
在这里插入图片描述

在这里插入图片描述
3)根据如上图提示,接下来需手工执行如下指令,拷贝admin配置文件;

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

4)将node节点加入K8S集群,在Node节点使用的参数和指令如下;


kubeadm join 192.168.1.146:6443 --token ze0zfe.9zhew67l6gxsq7du \--discovery-token-ca-cert-hash sha256:ee5a3f9accf98c76a3a3da1f3c4540c14c9e9ce49a4070de4b832aa8cb3a8f31

Node1节点加入集群

#启动Node1节点上docker引擎服务;
systemctl start docker.service
#将Node1节点加入K8S集群;
kubeadm join 192.168.1.146:6443 --token ze0zfe.9zhew67l6gxsq7du \
--discovery-token-ca-cert-hash sha256:ee5a3f9accf98c76a3a3da1f3c4540c14c9e9ce49a4070de4b832aa8cb3a8f31
#执行kubeadm init时没有记录下加入集群的指令,可以通过以下命令重新创建即可;
kubeadm token create --print-join-command
#登录K8S Master节点验证节点信息;
kubectl get nodes

在这里插入图片描述

K8S节点网络配置

Kubernetes整个集群所有服务器(Master、Minions)配置Flanneld,操作方法和指令如下:
参考:https://github.com/containernetworking/cni
必须安装pod网络插件,以便pod之间可以相互通信,必须在任何应用程序之前部署网络,CoreDNS不会在安装网络插件之前启动。
1)安装Flanneld网络插件;
Fanneld定义POD的网段为: 10.244.0.0/16,POD容器的IP地址会自动分配10.244开头的网段IP。安装Flanneld网络插件指令如下:

#下载Fanneld插件YML文件;
yum install wget -y
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#提前下载Flanneld组建所需镜像;
for i in $(cat kube-flannel.yml |grep image|awk -F: '{print $2":"$3}'|uniq );do docker pull $i ;done
#应用YML文件;
kubectl apply -f kube-flannel.yml
#查看Flanneld网络组建是否部署成功;
kubectl -n kube-system get pods|grep -aiE flannel

Kube-flannel.yaml配置文件代码如:

---
apiVersion: policy/v1beta1
kind: PodSecurityPolicy
metadata:name: psp.flannel.unprivilegedannotations:seccomp.security.alpha.kubernetes.io/allowedProfileNames: docker/defaultseccomp.security.alpha.kubernetes.io/defaultProfileName: docker/defaultapparmor.security.beta.kubernetes.io/allowedProfileNames: runtime/defaultapparmor.security.beta.kubernetes.io/defaultProfileName: runtime/default
spec:privileged: falsevolumes:- configMap- secret- emptyDir- hostPathallowedHostPaths:- pathPrefix: "/etc/cni/net.d"- pathPrefix: "/etc/kube-flannel"- pathPrefix: "/run/flannel"readOnlyRootFilesystem: false# Users and groupsrunAsUser:rule: RunAsAnysupplementalGroups:rule: RunAsAnyfsGroup:rule: RunAsAny# Privilege EscalationallowPrivilegeEscalation: falsedefaultAllowPrivilegeEscalation: false# CapabilitiesallowedCapabilities: ['NET_ADMIN', 'NET_RAW']defaultAddCapabilities: []requiredDropCapabilities: []# Host namespaceshostPID: falsehostIPC: falsehostNetwork: truehostPorts:- min: 0max: 65535# SELinuxseLinux:# SELinux is unused in CaaSPrule: 'RunAsAny'
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: flannel
rules:
- apiGroups: ['extensions']resources: ['podsecuritypolicies']verbs: ['use']resourceNames: ['psp.flannel.unprivileged']
- apiGroups:- ""resources:- podsverbs:- get
- apiGroups:- ""resources:- nodesverbs:- list- watch
- apiGroups:- ""resources:- nodes/statusverbs:- patch
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:name: flannel
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: flannel
subjects:
- kind: ServiceAccountname: flannelnamespace: kube-system
---
apiVersion: v1
kind: ServiceAccount
metadata:name: flannelnamespace: kube-system
---
kind: ConfigMap
apiVersion: v1
metadata:name: kube-flannel-cfgnamespace: kube-systemlabels:tier: nodeapp: flannel
data: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": "10.244.0.0/16","Backend": {"Type": "vxlan"}}
---
apiVersion: apps/v1
kind: DaemonSet
metadata:name: kube-flannel-dsnamespace: kube-systemlabels:tier: nodeapp: flannel
spec: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: quay.io/coreos/flannel:v0.13.1-rc2command:- 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: quay.io/coreos/flannel:v0.13.1-rc2command:- /opt/bin/flanneldargs:- --ip-masq- --kube-subnet-mgrresources:requests:cpu: "100m"memory: "50Mi"limits:cpu: "100m"memory: "50Mi"securityContext:privileged: falsecapabilities:add: ["NET_ADMIN", "NET_RAW"]env:- name: POD_NAMEvalueFrom:fieldRef:fieldPath: metadata.name- name: POD_NAMESPACEvalueFrom:fieldRef:fieldPath: metadata.namespacevolumeMounts:- name: runmountPath: /run/flannel- name: flannel-cfgmountPath: /etc/kube-flannel/volumes:- name: runhostPath:path: /run/flannel- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg

在这里插入图片描述
2)安装Calico网络插件;
官方文档参考:
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network
https://docs.projectcalico.org/v3.10/getting-started/kubernetes/
为使calico正常工作,你需要传递–pod-network-cidr=10.10.0.0/16到kubeadm init或更新calico.yml文件,以与您的pod网络相匹配。

kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml

在这里插入图片描述
如果安装flannel网络插件,必须通过kubeadm init配置–pod-network-cidr=10.10.0.0/16参数。
验证网络插件
安装了pod网络后,确认coredns以及其他pod全部运行正常,查看master节点状态为Ready
kubectl get nodes
kubectl -n kube-system get pods

在这里插入图片描述
至此,Kubernetes 的 Master 节点就部署完成了。如果只需要一个单节点的 Kubernetes,现在你就可以使用了。

http://www.yayakq.cn/news/185192/

相关文章:

  • 做网站广告联盟坑梓网站建设咨询
  • 应该知道的网站福州制作公司网站
  • 知乎网站怎么做推广深圳工业设计公司有哪些
  • 建设农产品网站总结ppt58同城做网站要钱吗
  • 山东公司网站建设nodejs做后端的网站
  • 做任务换流量的网站网站建设与维护心得
  • 做网站需要用到哪些开发软件小区服务网站怎么做
  • 西宁网站建设方案wordpress放谷歌代码
  • 用织梦做的网站好还是cmswordpress 软件
  • 营销型网站页面布局大连seo优化
  • 淘宝怎么才能发布网站建设网站如何设置微信支付功能
  • 建设部网站工程设计收费标准广州专业的免费建站
  • 营销型企业网站建设板块设置网站左侧导航源码
  • 大型网站制作平台事业单位网站模板
  • 山东济南网络科技有限公司赣州seo推广
  • php 手机网站cmswordpress 链接优化
  • 如何做自己的网站百度推广网站开发的源码
  • 安徽网新科技有限公司 网站开发在线设计平台的概念
  • dz网站制作网站成品超市
  • 网站开发的评论界面怎么写wordpress映射不出去
  • 教育机构网站微信网页上的网站怎么做
  • 企业营销网站案例深圳制作网站专业
  • 优秀个人网站设计欣赏最好看的电视剧大全免费观看免费
  • 做网站昆明wordpress展示页面模板
  • 营销型网站建设品牌琼海做网站口碑
  • 泰州住房和城乡建设厅网站首页葫芦岛建设厅网站
  • 利津网站制作wordpress首页缩略图大小
  • 网站做推广怎么收费查询优惠券的网站如何做
  • 网站外链建设的策略分析爱站网是什么平台
  • 广东外贸型网站建设怎么给公司做个网站