国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

docker安裝部署rancher、rancher kubectl更新pod。

這篇具有很好參考價值的文章主要介紹了docker安裝部署rancher、rancher kubectl更新pod。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

環(huán)境條件

虛擬機 VMWare【建議4G、4核】
操作系統(tǒng) CentOS7

文章后面記錄了部署過程出現(xiàn)的一系列問題,建議先對照問題配置下環(huán)境。

前期準(zhǔn)備

1、關(guān)閉防火墻

systemctl stop firewalld
systemctl disable firewalld

2、關(guān)閉selinux

???????# 永久關(guān)閉(需重啟)
sed -i 's/enforcing/disabled/' /etc/selinux/config
reboot
#臨時關(guān)閉
setenforce 0

3、關(guān)閉swap分區(qū)

# 永久關(guān)閉(需重啟)
sed -ri 's/.*swap.*/#&/' /etc/fstab
reboot
#臨時關(guān)閉
swapoff -a

4、設(shè)置主機名

# 在master上執(zhí)行
hostnamectl set-hostname vm1
# 在node1上執(zhí)行
hostnamectl set-hostname vm2
# 在node2上執(zhí)行
hostnamectl set-hostname vm3

5、???????在每個節(jié)點添加時間同步

# 安裝ntpdate時間同步插件
yum install ntpdate -y
# 開啟時間同步
ntpdate time.windows.com

6、所有節(jié)點安裝Docker

# 獲取鏡像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# 安裝
yum -y install docker-ce
# 設(shè)置開機自啟動并啟動
systemctl enable docker && systemctl start docker
# 查看版本
docker version
# 設(shè)置鏡像加速器、設(shè)置容器日志保留限制
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
  "log-driver": "json-file",
  "log-opts": {"max-size": "100m", "max-file": "3"}
}
EOF
# 重載配置
sudo systemctl daemon-reload
# 重啟docker
sudo systemctl restart docker

安裝步驟

rancher中文官網(wǎng)地址:Rancher文檔 | K8S文檔 | Rancher | Rancher文檔

1、鏡像拉取

此處針對rancher2.x
docker pull rancher/rancher:v2.5.12

2、查看鏡像及鏡像詳細(xì)信息

docker images
docker inspect rancher/rancher:v2.5.12

3、創(chuàng)建掛載目錄
rancher鏡像主要有四個volume目錄(rnacher、log、kubelet、cni),默認(rèn)方式是采用匿名卷的方式,可以使用掛載到指定的主機目錄方式來進行數(shù)據(jù)卷持久化。

mkdir -p /usr/local/rancher/rancher
mkdir -p /usr/local/rancher/log
mkdir -p /usr/local/rancher/kubelet
mkdir -p /usr/local/rancher/cni

4、啟動容器

docker run --name rancher -d --privileged --restart=always -p 80:80 -p 443:443 \
-v /usr/local/rancher/rancher:/var/lib/rancher \
-v /usr/local/rancher/log:/var/log \
-v /usr/local/rancher/cni:/var/lib/cni \
-v /usr/local/rancher/kubelet:/var/lib/kubelet \
rancher/rancher:v2.5.12

# 注意 
# 如果部署rancher的主機需要安裝k8s節(jié)點,那就要把rancher的80/443端口設(shè)置成其他的端口,以免和k8s的ingress端口沖突。

5、訪問可視化界面
???????【訪問自己虛擬機的地址】
設(shè)置登錄密碼進入下一步并設(shè)置rancher server url【確保集群的每個節(jié)點都能訪問該地址】
進入管理界面后可以修改界面語言

6、配置鏡像

在rancher-ui中,系統(tǒng)設(shè)置 -> 高級設(shè)置 -> system-default-registry -> 點擊升級,輸入 registry.cn-hangzhou.aliyuncs.com 后保存即可

7、添加集群
添加集群 -> 自定義 -> 錄入基本配置信息后下一步 -> 勾選Etcd和Control Plane -> 復(fù)制需要在主機SSH運行的命令 -> 執(zhí)行命令 -> 界面提示主機注冊成功后點擊完成 -> 等待集群狀態(tài)變成 Active【需要點時間】

關(guān)于部署更新pod

關(guān)于部署應(yīng)用,本人用的都是shell+Dockerfile的形式,先在集群上面手動創(chuàng)建app,然后再通過jenkins執(zhí)行shell腳本,把應(yīng)用打包好,然后打包成docker鏡像,推送到遠(yuǎn)程倉庫,最后使用rancher kubectl命令實現(xiàn)pod的升級。

需要提前安裝rancher-cli,kubectl,并配置環(huán)境變量。

# 登錄rancher,只需要登錄一次就可以無限切換集群了(也就是下面的切換集群命令)。
rancher login https://127.0.0.1:9017/v3 --token token-jftp9:56rh9l88vngxgsd4tgrtvrzx52dr2sfx79h6dnn7b4j56lq5j8rn5q

# 切換集群
rancher context switch 集群id?

以下是一些常用的配置項。

1、java應(yīng)用

build.sh
#!/bin/bash
java -version
mvn -version
mvn clean package -Dmaven.test.skip=true -e -U

time=$(date "+%Y%m%d%H%M%S")
env=$env

project="app"

commit_branch=${branch:7}
commit_seql=$(git rev-parse --short HEAD)

commit_branch="master"
env="dev"

docker login -u user -p password

image_name=$commit_branch-$commit_seql-$time
docker build -t $image_name .

docker_tag=docker/app:$project-$env-$image_name
docker tag $image_name $docker_tag

docker push $docker_tag
docker rmi -f $docker_tag

echo "本次準(zhǔn)備發(fā)布到[$env]環(huán)境的鏡像地址是[$docker_tag]"

cluster="c-gtzwq:p-kz5h4"
namespace="default"

echo "開始部署"

rancher context switch $cluster

rancher kubectl set image deployment/$project $project=$docker_tag -n $namespace

echo "本次部署完成"
Dockerfile
FROM hdfk7/open-jdk-17

COPY docker-entrypoint.sh /docker-entrypoint.sh

COPY target/*.jar /

RUN chmod +x /docker-entrypoint.sh

ENTRYPOINT ["/docker-entrypoint.sh"]

# hdfk7/open-jdk-17集成了skywalking
docker-entrypoint.sh
#!/bin/bash
if [[ ! -z "$(which java)" ]]; then
  JAVA_OPTS="${JAVA_OPTS}"
  APP_OPTS="${APP_OPTS}"
  echo "JAVA_OPTS=${JAVA_OPTS}"
  echo "APP_OPTS=${APP_OPTS}"
  echo "INFO: auto detect find jar on / and then bootup..."
  jar=$(find /*.jar 2>/dev/null | egrep -v sources.jar | egrep -v tests.jar | head -n 1)
  echo "jar=${jar}"
  if [[ -n "${jar}" ]]; then
    echo "run ${jar}"
    exec java $JAVA_OPTS $APP_OPTS -jar ${jar}
  else
    echo "cant detect /app.jar, will exit"
    sleep 20
    exit 1
  fi
fi

2、web應(yīng)用

build.sh

#!/bin/bash
node -v
npm -v

npm install

npm run build

time=$(date "+%Y%m%d%H%M%S")
env=$env

project="app"

commit_branch=${branch:7}
commit_seql=$(git rev-parse --short HEAD)

commit_branch="master"
env="dev"

docker login -u user -p password

image_name=$commit_branch-$commit_seql-$time
docker build -t $image_name .

docker_tag=docker/app:$project-$env-$image_name
docker tag $image_name $docker_tag

docker push $docker_tag
docker rmi -f $docker_tag

echo "本次準(zhǔn)備發(fā)布到[$env]環(huán)境的鏡像地址是[$docker_tag]"

cluster="c-gtzwq:p-kz5h4"
namespace="default"

echo "開始部署"

rancher context switch $cluster

rancher kubectl set image deployment/$project $project=$docker_tag -n $namespace

echo "本次部署完成"

Dockerfile

FROM nginx

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && rm -rf /etc/nginx/conf.d/* && rm -rf /etc/nginx/nginx.conf && rm -rf /usr/share/nginx/html/*

COPY dist /usr/share/nginx/html/
COPY nginx.conf /etc/nginx/nginx.conf
nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

include /usr/share/nginx/modules/*.conf;

events {
    worker_connections 9000;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    server_tokens       off;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    server {
            listen       80;
            root         /usr/share/nginx/html;
            location / {
                try_files $uri $uri/ /index.html;
            }
            gzip on;
            gzip_buffers 32 4K;
            gzip_comp_level 6;
            gzip_min_length 100;
            gzip_types application/javascript text/css text/xml;
            gzip_disable "MSIE [1-6]\."; #配置禁用gzip條件,支持正則。此處表示ie6及以下不啟用gzip(因為ie低版本不支持)
            gzip_vary on;
    }
}

問題處理

1、啟動rancher容器服務(wù)報 WARNING: IPv4 forwarding is disabled. Networking will not work.錯誤

修改配置文件:
vim /usr/lib/sysctl.d/00-system.conf
追加內(nèi)容:
net.ipv4.ip_forward=1
重啟網(wǎng)絡(luò):
systemctl restart network
將之前錯誤的docker刪掉,重新創(chuàng)建啟動即可
docker stop 容器ID
docker rm 容器ID

2、集群創(chuàng)建過程報錯 can not find RKE state file

原因是 hostname 和 DNS 的解析規(guī)則不匹配,需要修改 hostname vim /etc/hostname 或者 hostnamectl set-hostname master

3、rancher-agent容器服務(wù)啟動不起來

可能是 rancher server url 配置的不正確

4、集群安裝過程報錯 [etcd] Failed to bring up Etcd Plane: [etcd] Etcd Cluster is not healthy

可能是上個集群的一些配置沒有清除,導(dǎo)致配置文件不同步之類的原因,在安裝rancher的機器上執(zhí)行如下命令:
docker stop $(docker ps -aq)

docker system prune -f

docker volume rm $(docker volume ls -q)

docker image rm $(docker image ls -q)

umount $(df -HT | grep '/var/lib/kubelet/pods' | awk '{print $7}')

rm -rf /etc/ceph /etc/cni /etc/kubernetes /opt/cni /opt/rke /run/secrets/kubernetes.io /run/calico /run/flannel /var/lib/calico /var/lib/etcd /var/lib/cni /var/lib/kubelet /var/lib/rancher/rke/log /var/log/containers /var/log/pods /var/run/calico /usr/local/software/rancher-home/

5、創(chuàng)建集群過程報錯 Error response from daemon: Get?https://registry-1.docker.io/v2/:?dial tcp: lookup registry-1.docker

vi /etc/resolv.conf
添加 nameserver 8.8.8.8和nameserver 114.114.114.114
重啟網(wǎng)絡(luò) systemctl restart network

6、創(chuàng)建集群時一直卡在 Pre-pulling kubernetes images 不動

rancher-ui中,系統(tǒng)設(shè)置 -> 高級設(shè)置 -> system-default-registry -> 點擊升級,輸入 registry.cn-hangzhou.aliyuncs.com 后保存即可

最后

該文章內(nèi)容都是本人親自實踐后的,該內(nèi)容參考了以下博文。

一文教你從零快速搭建k8s集群_小螺旋丸的博客-CSDN博客

Docker 設(shè)置日志文件限制最多3個,最大5M_docker設(shè)置日志上限_qiandeqiande的博客-CSDN博客

docker安裝部署rancher???????文章來源地址http://www.zghlxwxcb.cn/news/detail-439728.html

到了這里,關(guān)于docker安裝部署rancher、rancher kubectl更新pod。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • kubectl&kubelet&rancher&helm&kubeadm這幾個命令行工具是什么關(guān)系?

    kubectl&kubelet&rancher&helm&kubeadm這幾個命令行工具是什么關(guān)系?

    在最近學(xué)習(xí)k8s的過程中,發(fā)現(xiàn)kubectlkubeletrancherhelmkubeadm這幾個命令怎么在交錯使用,他們究竟是什么關(guān)系?他們分別應(yīng)該在什么情況下使用呢?這里我進行了簡單的總結(jié),做個區(qū)分。 Kubectl 是一款用于管理和操作 Kubernetes 集群的命令行工具,是Kubernetes 的一個標(biāo)準(zhǔn) CLI,具備可

    2024年02月02日
    瀏覽(23)
  • Docker+rancher部署SkyWalking8.5并應(yīng)用在springboot服務(wù)中

    Docker+rancher部署SkyWalking8.5并應(yīng)用在springboot服務(wù)中

    Skywalking是一個國產(chǎn)的開源框架,2015年有吳晟個人開源,2017年加入Apache孵化器,國人開源的產(chǎn)品,主要開發(fā)人員來自于華為,2019年4月17日Apache董事會批準(zhǔn)SkyWalking成為頂級項目,支持Java、.Net、NodeJs等探針,數(shù)據(jù)存儲支持Mysql、Elasticsearch等,跟Pinpoint一樣采用字節(jié)碼注入的方式

    2024年02月13日
    瀏覽(46)
  • Kubernetes系列-kubectl命令-pod相關(guān)

    1. 獲取集群全量pod列表 或者 2. 獲取制定ns中的pod列表 3. 查看pod所在節(jié)點 4. 查看pod內(nèi)存使用情況 5. 查看某pod的相關(guān)日志 --tail=n:指定查看多少行日志。 6. 查看pod配置 7. 查看pod所屬node節(jié)點 8. pod擴容 9. pod縮容 10. 查看pod詳細(xì)信息 11. 查看pod的資源配置 12. 登陸pod ?

    2024年02月16日
    瀏覽(22)
  • 使用kubectl獲取pod日志小技巧

    目錄 1. 前言 2. kubectl logs 3. 附官方命令解釋 1. 前言 如何查看k8s中pod的console控制臺日志?即類似于docker logs查看容器日志一樣;可以使用 kubectl 命令,查看K8S中 Pod的日志。 在這里,將通過kubectl獲取 Pod 的日志,包括當(dāng)前運行、同一deployment下所有副本的日志。 2. kubectl logs 2.

    2024年02月04日
    瀏覽(12)
  • 常用環(huán)境部署(七)——Docker安裝RocketMQ

    常用環(huán)境部署(七)——Docker安裝RocketMQ

    (1)拉取鏡像 (2)創(chuàng)建一個數(shù)據(jù)目錄 即創(chuàng)建一個namesrv數(shù)據(jù)存儲路徑 (3)構(gòu)建namesrv容器 ?(4)參數(shù)說明 參數(shù) 說明 -d 以守護進程的方式啟動 - -restart=always docker重啟時候容器自動重啟 - -name rmqnamesrv 把容器的名字設(shè)置為rmqnamesrv -p 9876:9876 把容器內(nèi)的端口9876掛載到宿主機98

    2023年04月14日
    瀏覽(23)
  • Docker環(huán)境下kkfileview安裝部署記錄

    Docker環(huán)境下kkfileview安裝部署記錄

    官方文檔地址:http://kkfileview.keking.cn/zh-cn/docs/production.html 源碼地址:https://gitee.com/kekingcn/file-online-preview 一般沒有改代碼的話用這種方式就可以,注意有nginx轉(zhuǎn)發(fā)的話需要配置base.url參數(shù) 由于對代碼做了一些更改,所以手動部署 ? Dockerfile文件 ?pom 五、前端url處理

    2024年02月11日
    瀏覽(24)
  • docker環(huán)境安裝 部署 Oracle 19c

    docker環(huán)境安裝 部署 Oracle 19c

    3.1 啟動Oracle 容器 3.2 配置Oracle 初始化 3.3 dbvs 連接 到此就安裝連接成功了

    2024年02月03日
    瀏覽(25)
  • rancher平臺上強制刪除pod服務(wù)操作

    rancher平臺上強制刪除pod服務(wù)操作

    在日常paas平臺運維工作中需要對rancher平臺進行巡檢的工作,在巡檢時發(fā)現(xiàn)在rancher管理界面無法刪除異常的pod服務(wù), ? 像這樣的情況就是k8s集群的pod無法通過默認(rèn)的方式去刪除掉pod服務(wù),這時候只能是手工強制性去刪除pod服務(wù)。 注:rancher平臺怎么切換到kubelet命名行界面指導(dǎo)

    2024年02月15日
    瀏覽(13)
  • Kubernetes系列-通過kubectl實現(xiàn)重啟pod的方法

    kubectl 沒有 restart pod 這個命令,主要是由于在 k8s 中pod 的管理屬于rs 等控制器,并不需要手動維護,但有時更新了yaml文件后,期望破都能夠\\\"重啟\\\"重新加載yaml文件,比如修改了configmap 的配置文件后,希望重啟pod 加載配置,此時就需要 “重啟” Pod。而\\\"重啟\\\"準(zhǔn)確地來說是重建

    2024年02月12日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包