【K8S专题】四、Kubernetes 安装配置

  Kubernetes 的安装配置工具有以下几种:
  1. kubeadm:官方推荐使用的 Kubernetes 安装工具,在 CentOS、Ubuntu、Debian 等多种 Linux 平台上都支持安装。

  2. kops:由 Kubernetes 官方认可的工具,主要用于在 AWS 上部署 Kubernetes 群集,并支持多个区域和可用性区域。

  3. Kubermatic:一个开源工具,可帮助用户快速部署 Kubernetes 群集,包括 DNS、负载均衡器、存储、证书等。

  4. kubespray:一个由 Ansible 驱动的 Kubernetes 部署工具,支持多个虚拟化平台和云提供商,如 AWS、GCP、VMware、OpenStack 等。

  5. K3s:一个轻量级的 Kubernetes 版本,适用于资源有限的环境,如边缘计算场景。

  6. Rancher:一个企业级 Kubernetes 管理平台,可以帮助用户快速、简单地部署和管理 Kubernetes 群集。

  7. OpenShift:一个基于 Kubernetes 的容器应用平台,集成了构建、部署、管理、监控等一系列工具,适用于企业级应用场景。

1、切换镜像源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2、安装 kubeadm、kubelet 和 kubectl

yum install -y kubelet kubeadm kubectl

3、配置 kubelet 的 cgroup

vi  /etc/sysconfig/kubelet
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

4、启动 kubelet 并设置开机启动

systemctl start kubelet && systemctl enable kubelet

5、初始化 k8s 集群(只在 Master 执行)

初始化

kubeadm init --kubernetes-version=v1.22.3  \
--apiserver-advertise-address=172.16.20.111   \
--image-repository registry.aliyuncs.com/google_containers  \
--service-cidr=10.20.0.0/16 --pod-network-cidr=10.222.0.0/16

创建必要文件

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

6、加入集群(只在 Node 节点执行)

在 Node 节点(172.16.20.112 和 172.16.20.113)运行上一步初始化成功后显示的加入集群命令

kubeadm join 172.16.20.111:6443 --token fgf380.einr7if1eb838mpe \
	--discovery-token-ca-cert-hash sha256:fa5a6a2ff8996b09effbf599aac70505b49f35c5bca610d6b5511886383878f7

在 Master 查看集群状态

[root@master ~]# kubectl get nodes
NAME     STATUS     ROLES                  AGE     VERSION
master   NotReady   control-plane,master   2m54s   v1.22.3
node1    NotReady   <none>                 68s     v1.22.3
node2    NotReady   <none>                 30s     v1.22.3

7、安装网络插件(只在 Master 执行)

wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

镜像加速:修改 kube-flannel.yml 文件,将 quay.io/coreos/flannel:v0.15.0 改为 quay.mirrors.ustc.edu.cn/coreos/flannel:v0.15.0
执行安装

kubectl apply -f kube-flannel.yml

再次查看集群状态,(需要等待一段时间大概 1-2 分钟)发现 STATUS 都是 Ready。

[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   42m   v1.22.3
node1    Ready    <none>                 40m   v1.22.3
node2    Ready    <none>                 39m   v1.22.3

8、集群测试

使用 kubectl 安装部署 nginx 服务

kubectl create deployment nginx  --image=nginx  --replicas=1

kubectl expose deploy nginx  --port=80 --target-port=80  --type=NodePort

查看服务

[root@master ~]# kubectl get pod,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-6799fc88d8-z5tm8   1/1     Running   0          26s

NAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.20.0.1      <none>        443/TCP        68m
service/nginx        NodePort    10.20.17.199   <none>        80:32605/TCP 9s

服务显示 service/nginx 的 PORT(S)为 80:32605/TCP, 我们在浏览器中访问主从地址的 32605 端口,查看 nginx 是否运行
http://172.16.20.111:32605/
http://172.16.20.112:32605/
http://172.16.20.113:32605/
成功后显示如下界面:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值