k8s安装教程

编程入门 行业动态 更新时间:2024-10-15 00:22:54

k8s安装<a href=https://www.elefans.com/category/jswz/34/1771193.html style=教程"/>

k8s安装教程

安装脚本:

#!/bin/bash# 关闭防火墙
systemctl stop firewalld.service
systemctl status firewalld.service
systemctl disable firewalld#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab
echo "vm.swappiness = 0" >> /etc/sysctl.conf
sysctl -p#设置启动参数
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOFsysctl --system#配置docker的yum库
yum -y install yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo .repo#install docker
yum -y install docker-ce-20.10.6 docker-ce-cli-20.10.6 containerd.io#修改docker cgroup driver为systemd
mkdir /etc/docker
cat <<EOF > /etc/docker/daemon.json
{"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF#启动docker
systemctl daemon-reload
systemctl restart docker
systemctl enable dockercat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=.gpg.gpg
EOF# 安装kubectl、kubelet、kubeadm
yum -y makecacheyum -y install kubelet-1.21.1 kubeadm-1.21.1 kubectl-1.21.1rpm -aq kubelet kubectl kubeadmsystemctl enable kubelet

该脚本需要在每个节点上执行,包括master;

启动master:

kubeadm init --apiserver-advertise-address=192.168.56.130 --image-repository registry-hangzhou.aliyuncs/google_containers --kubernetes-version v1.21.1 --service-cidr=10.96.0.0/16 --pod-network-cidr=10.244.0.0/16

192.168.56.130该地址为master主机地址,cidr地址可默认按此配置,无需修改;

执行上述命令可能会因为缺镜像而报错,解决方法为百度搜索替用镜像,重新打tag再执行;

pod calico CoreDNS 拉取不到镜像的问题的解决办法_我是klay的博客-CSDN博客_coredns 镜像在用calico网络插件部署k8s集群的时候,发现coredns这个pod起不来,状态一直是ImagePullBackOff,我们查看这个pod发现有这样的提示:kube-system coredns-545d6fc579-6js6f 0/1 ImagePullBackOff 0 5skube-system coredns-545d6fc579-6wklg 0/1 ImagePullBa

在master节点安装flannel:

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-cni-pluginimage: rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.0command:- cpargs:- -f- /flannel- /opt/cni/bin/flannelvolumeMounts:- name: cni-pluginmountPath: /opt/cni/bin- name: install-cniimage: rancher/mirrored-flannelcni-flannel:v0.16.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: rancher/mirrored-flannelcni-flannel:v0.16.1command:- /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: cni-pluginhostPath:path: /opt/cni/bin- name: cnihostPath:path: /etc/cni/net.d- name: flannel-cfgconfigMap:name: kube-flannel-cfg
kubectl apply -f kube-flannel.yml

现在可以执行node节点加入集群命令:

kubeadm join 192.168.56.130:6443 --token ps06zv.hpjb8rc3miff4e8h --discovery-token-ca-cert-hash sha256:63d50346459a766ff58f3b09a876f7080f2a081f039411b7ef562884a2a92f8f

如果生成的token过期,可使用以下命令在master节点重新生成:

kubeadm token create --print-join-command

现在即可使用 kubectl get nodes 命令查看节点了

[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   25d   v1.21.1
node-1   Ready    <none>                 25d   v1.21.1
node-2   Ready    <none>                 25d   v1.21.1

至此,集群搭建完毕,下一节更新如何搭建Kubernetes配置默认存储类,这个链接可供参考。

更多推荐

k8s安装教程

本文发布于:2024-03-23 02:02:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1739138.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:教程   k8s

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!