0
点赞
收藏
分享

微信扫一扫

C++11语法(基础)【一】

witmy 2024-09-24 阅读 17

官网:https://kubernetes.io/

应用部署方式演变

 容器化部署方式给带来很多便利,但是也会出现一些问题,比如说:

kubernetes简介

 kubernetes组件

 kubernetes概念

 k8s集群环境搭建

 环境搭建

环境初始化

部署k8s

配置镜像加速器

三台都需要做

vim /etc/docker/daemon.json

{
  "registry-mirrors": ["https://dockerpull.com",
        "https://docker.anyhub.us.kg",
        "https://dockerhub.jobcher.com",
        "https://dockerhub.icu",
        "https://docker.awsl9527.cn"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}





[root@master ~]# systemctl daemon-reload 
[root@master ~]# systemctl restart docker
[root@master ~]# systemctl enable docker

 下载cri-docker

将提前下载好的包上传上去进行解压
[root@master ~]# ls
anaconda-ks.cfg  cri-dockerd-0.3.9.amd64.tgz
[root@master ~]# tar -xvf cri-dockerd-0.3.9.amd64.tgz --strip-components=1 -C /usr/local/bin/

下载cri-docker service文件
[root@master01 ~]# wget -O /etc/systemd/system/cri-docker.service https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.service
[root@master01 ~]# wget -O /etc/systemd/system/cri-docker.socket https://raw.githubusercontent.com/Mirantis/cri-dockerd/master/packaging/systemd/cri-docker.socket
编辑cri-docker.server
[root@master ~]# cd /etc/systemd/system/
[root@master system]# vim cri-docker.service 
修改ExecStart行内容为

ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9 --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --cri-dockerd-root-directory=/var/lib/docker
编辑cri-docker.socket
[root@master system]# vim cri-docker.socket

修改ListenStream行内容为
ListenStream=/var/run/cri-dockerd.sock
复制cri-dockerd到其他节点
[root@master ~]# scp cri-dockerd-0.3.9.amd64.tgz root@node1:/root
cri-dockerd-0.3.9.amd64.tgz                               100%   14MB 125.4MB/s   00:00    
[root@master ~]# scp cri-dockerd-0.3.9.amd64.tgz root@node2:/root
cri-dockerd-0.3.9.amd64.tgz                               100%   14MB 126.4MB/s   00:00    
节点解压cri-docker
[root@node1 ~]# tar -xvf cri-dockerd-0.3.9.amd64.tgz --strip-components=1 -C /usr/local/bin/

[root@node2 ~]# tar -xvf cri-dockerd-0.3.9.amd64.tgz --strip-components=1 -C /usr/local/bin/
复制修改好的service文件到其他节点
[root@master ~]# cd /etc/systemd/system/
[root@master system]# scp cri-docker.s* root@node1:/etc/systemd/system/
cri-docker.service                                        100% 1523     3.0MB/s   00:00    
cri-docker.socket                                         100%  210   533.3KB/s   00:00    
[root@master system]# scp cri-docker.s* root@node2:/etc/systemd/system/
cri-docker.service                                        100% 1523     3.3MB/s   00:00    
cri-docker.socket                                         100%  210   327.4KB/s   00:00    

启动并设置开机自启

[root@master system]# systemctl daemon-reload 
[root@master system]# systemctl restart cri-docker
[root@master system]# systemctl enable cri-docker

部署k8s源

三台都需要做

[root@master ~]# cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.28/rpm/repodata/repomd.xml.key
EOF
安装集群所需软件包kubelet kubeadm kubectl(全部节点)
[root@master ~]# yum install -y kubelet kubeadm kubectl
配置k8s Cgoup控制组(全部节点)
vim /etc/sysconfig/kubelet

KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"

[root@master ~]# systemctl restart kubelet.service 
[root@master ~]# systemctl enable kubelet.service 
配置kubelet自启动(全部节点)
[root@master ~]# kubeadm config images list
I0923 11:00:25.255094    3466 version.go:256] remote version is much newer: v1.31.0; falling back to: stable-1.28
registry.k8s.io/kube-apiserver:v1.28.14
registry.k8s.io/kube-controller-manager:v1.28.14
registry.k8s.io/kube-scheduler:v1.28.14
registry.k8s.io/kube-proxy:v1.28.14
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.15-0
registry.k8s.io/coredns/coredns:v1.10.1

打印集群初始化配置文件(master节点运行)

[root@master ~]# kubeadm config print init-defaults > kubeadm-config.yaml

修改参数(master节点)

apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.100.10         #修改,集群初始化的主节点IP  
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///var/run/cri-dockerd.sock          #修改使用docke
  imagePullPolicy: IfNotPresent
  name: master                            #修改节点名称
  taints: null


........

imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers        #修改使用阿里云镜像仓库 

使用配置文件初始化(master节点运行)

[root@master ~]#  kubeadm init --config kubeadm-config.yaml --upload-certs
         --upload-certs参数是将集群密钥添加到etcd数据库
[init] Using Kubernetes version: v1.28.0
[preflight] Running pre-flight checks
	[WARNING FileExisting-socat]: socat not found in system path
        /// 有一个软件包没有安装,先安装在进行初始化
[preflight] Pulling images required for setting up a Kubernetes cluster
[preflight] This might take a minute or two, depending on the speed of your internet connection
[preflight] You can also perform this action in beforehand using 'kubeadm config images pull'
^C
安装
[root@master ~]# yum -y install socat


再次进行初始化
[root@master ~]# kubeadm init --config kubeadm-config.yaml --upload-certs

配置环境变量(master节点运行)

根据初始化完成提示配置

[root@master ~]# cat /etc/profile.d/k8s.sh 
export KUBECONFIG=/etc/kubernetes/admin.conf

传给另外两台主机

[root@master ~]# scp /etc/profile.d/k8s.sh root@node1:/etc/profile.d/
k8s.sh                                             100%   45    65.4KB/s   00:00    
[root@master ~]# scp /etc/profile.d/k8s.sh root@node2:/etc/profile.d/
k8s.sh                                             100%   45    73.6KB/s   00:00    

[root@master ~]# scp /etc/kubernetes/admin.conf root@node1:/etc/kubernetes/
admin.conf                                                100% 5650    10.4MB/s   00:00    
[root@master ~]# scp /etc/kubernetes/admin.conf root@node2:/etc/kubernetes/
admin.conf                                                100% 5650     9.0MB/s   00:00    



都需要 source /etc/profile.d/k8s.sh

工作节点加入集群(工作节点运行)

根据初始化完成提示将工作节点添加入集群

kubeadm join 192.168.100.10:6443 --token abcdef.0123456789abcdef \
> --discovery-token-ca-cert-hash sha256:b195b482a4294f2727f3115298492fb1b148eded3a6d6f15cd243bee168aad0b --cri-socket=unix:///var/run/cri-dockerd.sock

注意:--cri-socket=unix:///var/run/cri-dockerd.sock参数是指定使用docker作为容器管理引擎

下载calico文件(master节点运行)

Calico是为集群中的 Pod 提供网络功能

[root@master ~]# wget https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/calico.yaml
创建calico网络(master节点运行)
[root@master ~]# kubectl apply -f calico.yaml
查看集群各节点状态
[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES           AGE   VERSION
master   Ready    control-plane   49m   v1.28.14
node1    Ready    <none>          37m   v1.28.14
node2    Ready    <none>          36m   v1.28.14
查看k8s集群的各组件
[root@master ~]# kubectl get pod -n kube-system
NAME                                      READY   STATUS    RESTARTS   AGE
calico-kube-controllers-9d57d8f49-jjbc7   1/1     Running   0          8m11s
calico-node-8sptx                         1/1     Running   0          8m11s
calico-node-fd7pc                         1/1     Running   0          8m11s
calico-node-xsqp6                         1/1     Running   0          8m11s
coredns-6554b8b87f-4pkpz                  1/1     Running   0          52m
coredns-6554b8b87f-hsbcm                  1/1     Running   0          52m
etcd-master                               1/1     Running   0          52m
kube-apiserver-master                     1/1     Running   0          52m
kube-controller-manager-master            1/1     Running   0          52m
kube-proxy-8qvrh                          1/1     Running   0          39m
kube-proxy-jzxqs                          1/1     Running   0          52m
kube-proxy-zsghb                          1/1     Running   0          41m
kube-scheduler-master                     1/1     Running   0          52m

测试

使用k8s集群创建一个pod,运行nginx容器,然后进行测试

[root@master ~]# kubectl create  deployment  nginx  --image nginx
deployment.apps/nginx created
[root@master ~]# kubectl  expose  deployment  nginx  --port 80  --type NodePort
service/nginx exposed

查看容器在哪个节点中运行的
[root@master ~]# kubectl  get  pods  -o  wide
NAME                     READY   STATUS    RESTARTS   AGE   IP             NODE    NOMINATED NODE   READINESS GATES
nginx-7854ff8877-xgdpz   1/1     Running   0          32s   172.16.104.1   node2   <none>           <none>

[root@master ~]# kubectl  get  services
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1      <none>        443/TCP        55m
nginx        NodePort    10.99.81.235   <none>        80:32585/TCP   29s

测试访问

[root@master ~]# curl http://172.16.104.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

修改网页内容

[root@master ~]# kubectl  get  pods  -o  wide
NAME                     READY   STATUS    RESTARTS   AGE     IP             NODE    NOMINATED NODE   READINESS GATES
nginx-7854ff8877-xgdpz   1/1     Running   0          6m26s   172.16.104.1   node2   <none>           <none>

[root@master ~]# kubectl exec -it pod/nginx-7854ff8877-xgdpz -- /bin/bash
root@nginx-7854ff8877-xgdpz:/# cd /usr/share/nginx/html/
root@nginx-7854ff8877-xgdpz:/usr/share/nginx/html# ls
50x.html  index.html
root@nginx-7854ff8877-xgdpz:/usr/share/nginx/html# echo hello wuhan > index.html // 修改网页内容
root@nginx-7854ff8877-xgdpz:/usr/share/nginx/html# 

再次访问

[root@master ~]# curl http://172.16.104.1
hello wuhan

举报

相关推荐

17 C++11常用语法

c++11 tuple

C++11 异常

【C++】C++11

c++11 noexcept

c++11上篇

0 条评论